0
点赞
收藏
分享

微信扫一扫

6、Java运算符

微言记 2022-04-06 阅读 11

6、Java运算符

6.1 算术运算符

  1. 除法:/

    //整除
    System.out.println(10/4);//输出2
    System.out.println(10.0/4);//输出2.5
    double d1 = 10/4;
    System.out.println(d1);//输出2.0
    
  2. 取模: %

    //取模,取余
    //按照公式a % b = a - a / b * b 计算最终取模结果
    // 快速判断看被除数符号即可
    System.out.println(10%3);//输出1
    System.out.println(-10%3);//输出-1
    System.out.println(10%-3);//输出 10 - 10 / (-3) * (-3) = 1
    System.out.println(-10%-3);//输出 -10 - (-10) / (-3) * (-3) = -10 + 9 = -1
    
  3. 自增自减 : ++ –

    //自增自减
    //作为独立的语句使用,++i和i++完全等价,自减同理
    int i = 10 ;
    i++;
    ++i;
    System.out.println(i);//输出12
    //作为表达式用,++i先自增后赋值;i++先赋值后自增,自减同理
    int i1 = 10 ;
    int j1 = i1++;//等价:j1 = i1  ,  i1 = i1 + 1
    int j2 = ++i1;//等价: i1 = i1 + 1 , j2 = i1
    System.out.println(j1);//输出10
    System.out.println(j2);//输出12
    int i3 = 1;
    i3 = i3++;
    System.out.println(i3);//输出1 ,规则(使用临时变量):temp = i3 , i3 = i3 + 1 , i3 = temp
    int i4 = 1;
    i4 = ++i4;
    System.out.println(i4);//输出2,规则(使用临时变量):i4 = i4 + 1,  temp = i4 , i4 = temp
    

6.2 关系运算符

/*
结果都是boolean类型的,要么是true,要么是false   
==
!=
>
<
>=
<=
*/

6.3 逻辑运算符

//逻辑与 & , 逻辑或 | , 逻辑非 !, 逻辑异或 ^ (a^b : 当a和b不同时,结果为true,否则为false )
//短路与 && , 短路或 ||
//&和&&区别:对于短路与&&来说,第一个条件为false,后面的条件不再判断,开发中基本使用短路与,效率高
//          对于逻辑与&来说,无论第一个是否为false,后面条件都会判断,效率低
int i = 5;
int j = 20;
if(i<1 && ++j>10){
    System.out.println("短路与&&为true");
}
System.out.println("短路与:i=" + i + ",j=" + j);//这里++j没有执行
if(i<1 & ++j>10){
    System.out.println("逻辑与&为true");
}
System.out.println("逻辑与:i=" + i + ",j=" + j);//这里++j没有执行
//短路或 || , 逻辑或 |区别:
// 短路或 || :若第一个条件为true,则第二个条件不用判断,开发中基本使用短路或,效率高
// 逻辑或 |  :不管第一个条件是否为true,第二个条件都要判断

6.4 赋值运算符

//复合赋值运算符:+= , -= , *= , /= , %= 等,底层有类型转换!!!
//a+=b 等价于a = a + b
//复合赋值运算符会进行类型转换
byte b = 3;
//b = b + 2; //错,右边为int类型,不能转化为低精度的byte类型
b += 2;//对,等价于 b = (byte)(b + 2),底层有类型转换
System.out.println(b);

6.5 三元运算符

//条件表达式?表达式1:表达式2;
//规则:若表达式为true,输出表达式1,否则。输出表达式2
int a = 34;
int b = 56;
int result = a > b ? 1:0;
System.out.println(result);
//三个数最大值
int n1 = 55;
int n2 = 35;
int n3 = 67;
int max = n1>n2 ? (n1>n3?n1:n3):(n2>n3?n2:n3);
System.out.println(max);

6.6 运算符优先级

  1. (){} ,等
  2. 单目运算符:++,-- ,!
  3. 算术运算符:* ,/,%,+,-
  4. 位移运算符:>> ,<<,
  5. 比较运算符:> ,< ,=
  6. 逻辑运算符:&,|,&&,||
  7. 三元运算符: ? :
  8. 赋值运算符:=,/=,%=,+=,-=,!=

基础铺垫

//接受用户输入
//Scanner类,表示简单文本扫描器,在java.util包
//创建对象,使用方法
Scanner scanner = new Scanner(System.in);
System.out.println("输入名字:");
String name = scanner.next();//接受用户输入
System.out.println("name:"+ name);
System.out.println("输入年龄:");
int age = scanner.nextInt();//接受用户输入
System.out.println("age:"+ age);
System.out.println("输入成绩:");
double score = scanner.nextDouble();//接受用户输入
System.out.println("score:"+ score);
举报

相关推荐

0 条评论