Java运算符与控制语句

Java、运算符与控制语句

一、算术运算符

1.单目运算符

​ 单目运算符: +(取正)、-(取负)、++(自加)、–(自减)

操作符 描述
+ 加法运算,当+左右两边如果一旦有字符串的出现,就作为字符串的连接符使用
- 减法运算
++ 自增: 操作数的值增加1;++在前,先自加,再与表达式运算;++在后,先与表达式运算,再自加;
自减: 操作数的值减少1;–在前,先自减,再与表达式运算;–后,先与表达式运算,再自减;

2.双目运算符

2.1赋值运算符

基本赋值运算符

= Java中唯一一个自右向左运算的符号;

扩展的赋值运算符

+= 、-= 、*= 、/= 、%=(算术运算符+基本赋值运算符)

推荐使用:

  1. 提高执行效率

  2. 自动做强制类型转换

缺点:不直观

关系运算符

==、!=、>、>=、<、<=

操作符 描述
== 检查如果两个操作数的值是否相等,如果相等则条件为真
!= 检查如果两个操作数的值是否相等,如果值不相等则条件为真
> 检查左操作数的值是否大于右操作数的值,如果是那么条件为真
>= 检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真
< 检查左操作数的值是否小于右操作数的值,如果是那么条件为真
<= 检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真

逻辑运算符

&、|、^、!、&&、||

操作符 描述
& 逻辑与,两个都为true才是true,一个为false就是false
| 逻辑或,一个为true就是true,两个都是false才是false
^ 异或,相同为false,不同为true
! 非,取反 !true–>false !false–>true
&& 短路与,两个都为true才是true,一个为false就是false
|| 短路或,一个为true就是true,两个都是false才是false

推荐使用

短路**&&、||**:第一个操作数就已经能够决定最终的结果了,第二个操作数将不再执行

3.三目运算符

条件运算符也被称为三元运算符
条件表达式 ? 值1 : 值2;
1)执行条件表达式–>值为Boolean类型的表达式
2)如果为true,最终的结果取值1
3)如果为false,最终的结果取值2

4.运算符优先级

类别 操作符 关联性
后缀 () [] . (点操作符) 左到右
一元 + + - !〜 从右到左
乘性 * /% 左到右
加性 + - 左到右
移位 >> >>> << 左到右
关系 >> = << = 左到右
相等 == != 左到右
按位与 左到右
按位异或 ^ 左到右
按位或 | 左到右
逻辑与 && 左到右
逻辑或 | | 左到右
条件 ?: 从右到左
赋值 = + = - = * = / =%= >> = << =&= ^ = | = 从右到左
逗号 左到右

二、键盘录入及随机函数

Scanner 类

java.util.Scanner是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。

引用数据类型
	1.创建某个类型的变量|引用
		引用数据类型  变量名 = new 引用数据类型();
		Scanner scan=new Scanner();  ---scan就是scanner类型的变量
	2.使用功能
		变量.功能名字();
		
Scanner类:可以接收键盘输入的内容
	1.导包:指明Scanner类的位置
		import +包名+类名;  import java.util.Scanner;
		位置:类的上面
	2.创建某个类型的变量|引用
		Scanner scan=new Scanner(); 
	3.引用.功能名字();
			next() 接收字符串  结束功能:enter,不会接收enter
				从有效字符开始接收,遇到空格,tab不接受了,但是必须遇到enter结束功能
			nextLine()  只要没有换行,都能接收   遇到enter结束功能,接收enter
			nextInt() 
			nextByte()
			nextShort()
			nextDouble()....
	4.引用.close();
		注意:一定在一个类中使用完毕以后再关闭,否则重新开启也无法使用
		键盘接收3个整数,比较大小,找出最小的

Random类

/*
	Random:产生随机数
	1.导包  import java.util.Random;
	2.创建Random类型的变量|引用
	3.引用.功能名字()
		nextInt()  产生一个int范围内的随机整数
		nextInt(n) 产生0~n随机整数  [0,n)
			[0,max]   引用.nextInt(max+1) 
			[min,max] 引用.nextInt(max-min+1)+min
		
		nextDouble() 产生[0,1)之间的随机小数
			
		
	随机生成3个整数,比较大小,求最大的
	
	伪随机数
	
*/
import java.util.Random;
public class Random11{
	
	public static void main(String[] args){
		//1.导包
		//2.创建Random类型的变量|引用
		Random ran=new Random();
		//3.使用功能
		int i=ran.nextInt();
		//[0,5]
		i=ran.nextInt(6);
		System.out.println(i);
		
		//[3,5]   
		i=ran.nextInt(5-3+1)+3;
		System.out.println(i);
		
		double d=ran.nextDouble()+3;
		System.out.println(d);
		
		//三个数求大小
		int a=5;
		int b=10;
		int c=8;
		int max=a>b ? a : b;
		max=max>c ? max : c;
		System.out.println(max);
		
		
		max=a>b & a>c ? a : (b>c ? b : c); 
		System.out.println(max);
	}
	
}

三、流程控制语句

​ java中的流程控制语句

​ 顺序结构:从上倒下,从左到

​ 选择结构:根据选择,决定执行的内容

​ 循环结构:重复执行同样的操作

条件语句 - if…else语句

    单分支|单选泽
    if(条件表达式){
    	语句体;
    }

    条件表达式必须值为boolean类型的表达式
    如果条件表达式结果为false,就不执行跳过整个if结构
    如果条件表达式结果为true,执行{}中的语句体

    双分支|双选择
    if(条件表达式){
    	语句体1;
    }else{
    	语句体2;
    }
    无论是否满足条件,都会执行语句体

    多分支|多选择:
    if(条件表达式1){
    	语句体1;
    }else if(条件表达式2){
    	语句体2;
    }else if(条件表达式3){
    	语句体3;
    }
    ....
    else{
    	以上条件都不满足执行的内容
    }
			
	if语句和条件运算符之间的选择:
		1.条件运算符肯定会得到结果
		2.麻烦的使用if,简单的能使用条件运算符就是用条件运算符
		
		无论是多选还是单选,双选,只要语句体只有1,前后的{}可以省略

switch语句

switch语句:定值判断

    switch(表达式){
        case1:
            语句体1;
            break;
        case2:
            语句体2;
             break;
            ....
        default:
            语句体n;
            break;
    }
    表达式|变量: byte,short,int,char,枚举(1.5),字符串(1.7)
    case:拿表达式的结果与case后的值进行判断,如果相同,执行对应的语句体;
    break:结束这个switch语句,如果没有break会发生case穿透
    default: else作用一致,以上case都不满足条件,执行default中的语句体
    可以在switch语句中的任何位置,改变位置注意break的问题

    if语句可以做区间判断,可以做定值判断
    switch 只能做定值判断

你可能感兴趣的:(Java)