Java运算符

运算符:运算的符号

1. 算术:+,-,*,/,%,++,–

  • +,-,*,/,%,++,–

    • 加和减没什么好说的,注意乘号容易溢出(当然计算量大过int类型,也就是21亿),要注意在第一个数字后面加L

    • %: 取模/取余,余数为0即为整除

      System.out.println(5%2); //1,商2余1
      System.out.println(8%2); //0,商4余0----整除
      System.out.println(2%8); //2,商0余2
      
    • ++/–:自增1/自减1,可在变量前也可在变量后

    ++使用规则
    • 单独使用时,在前在后都一样
      a++ 是a+1
      ++a是a+1

      int a=5,b=5;
      a++; //相当于a=a+1
      ++b; //相当于b=b+1
      System.out.println(a); //6
      System.out.println(b); //6
      
    • 被使用时,在前在后不一样(赋值,运算)

      • a++的值被使用时为a, 被使用过后a最后变为a+1
      • ++a的值被使用时为a+1, 被使用过后a最后变为a+1
      int a=5,b=5;
      int c = a++; //1)保存a++的值5  2)a自增1变为6 (3)将a++的值5赋值给c
      		     //粗暴记法://把a++的值5赋值给c,c=5,然后a=a+1=6
      int d = ++b; //1) 保存++b的值6 2)b自增1变为6 (3)将++b的值6赋值给d
      			 //粗暴记法://把++b的值5赋值给d,d=6,然后b=b+1=6
      System.out.println(a); //输出为6 因为a++过后变成6
      System.out.println(b); //输出为6 因为++b过后变成6
      System.out.println(c); //输出为5 c=a++,因为是被使用a++的值为a,把a=5赋给c
      System.out.println(d); //输出为6 d=++b,因为是被使用++b的值为b=b+1,把b=6赋给d
      
    - -使用规则
    • -与++同理
      //单独使用
           int a=5,b=5;
           a--; //相当于a=a-1
           --b; //相当于b=b-1
           System.out.println(a); //4
           System.out.println(b); //4
           //被使用
           int a=5,b=5;
           int c = a--; //1)将a--的值5赋值给c  2)a自减1变为4
           int d = --b; //1)将--b的值4赋值给d  2)b自减1变为4
           System.out.println(a); //4
           System.out.println(b); //4
           System.out.println(c); //5
           System.out.println(d); //4
    

2. 关系运算符:>,<,>=,<=,==,!=

关系运算的结果为boolean型,关系成立为true,不成立为false
  int a=5,b=10,c=5;
  boolean b1 = a>b;
  System.out.println(b1);   //false
  System.out.println(c<b);  //true
  System.out.println(a>=c); //true
  System.out.println(a<=b); //true
  System.out.println(a==c); //true
  System.out.println(a!=c); //false
     
  System.out.println(a+c>10); //false
  System.out.println(a%2==0); //false
  System.out.println(c++>5);  //false--------c自增1变为6
  System.out.println(c++>5);  //true---------c自增1变为7

3. 逻辑运算符:&&,||,!

  • 逻辑运算是建立在关系运算基础之上的,逻辑结果也是boolean型
&&:逻辑与(并且),两边都为真则为真,见false则false
      int a=5,b=10,c=5;
      boolean b1 = b>=a && b<c;
      System.out.println(b1);          //true && false=false
      System.out.println(b<=c && b>a); //false && true=false
      System.out.println(a==b && c>b); //false && false=false
      System.out.println(b!=c && a<b); //true && true=true
||:逻辑或(或者),有真则为真,见true则true
int a=5,b=10,c=5;
System.out.println(b>=a || b<c); //true||false=true
System.out.println(b<=c || b>a); //false||true=true
System.out.println(b!=c || a<b); //true||true=true
System.out.println(a==b || c>b); //false||false=false
!:逻辑非(取反),非真则假,非假则真
int a=5,b=10,c=5;
boolean b2 = !(a<b);
System.out.println(b2);     //!true=false 
System.out.println(!(a>b)); //!false=true

注意:&&和||会有短路的概念(就是前面的一个符合条件后面那个不运行)

  1. 对于&&而言,当第1个条件为false时,会发生短路(后面的不走)
  2. 对于||而言,当第1个条件为true时,会发生短路(后面的不走)
int a=5,b=10,c=5;
boolean b3 = a>b && c++>2;  //先做关系a<b再做逻辑,如果a>b满足了条件,后面c++就不会运行,c就不会c=c+1
System.out.println(b3); //false
System.out.println(c);  //5,发生短路了

boolean b4 = c<b || a++>2;
System.out.println(b4); //true
System.out.println(a);  //5,发生短路了

赋值运算符:

1.简单运算符=,
  int a = 5;
2.扩展运算符:+=,-=,*=,/=,%

a += 10; //相当于a=(int)(a+10)
System.out.println(a); //15
a *= 2; //相当于a=(int)(a*2)
System.out.println(a); //30
a /= 6; //相当于a=(int)(a/6)
System.out.println(a); //5

扩展赋值运算符(+=,-=,*=,/=,%=),自带强转功能:

short s = 5;
//s = s+10; //编译错误,右边自动转成int,因为short运算时自动转成int,需改为: s=(short)(s+10); 
s += 10; //正确,相当于s=(short)(s+10),强转,前面的是什么类型就强转成什么类型
//现在s是short类型,所以强转之后是short
字符串连接:+

不能用char, char只能用一个字符,所以字符串用string
string:字符串型,双引号中,0到多个,只要和字符串连接就变成字符串,属于同化作用

int age = 138;
System.out.println("age="); //age=
System.out.println(age);    //138
System.out.println("age="+age); //age=138
System.out.println("我的年龄是"+age); //我的年龄是138
System.out.println("我今年"+age+"岁了"); //我今年138岁了

String name = "MZDTZJH"; //声明字符串型变量name并赋值为MZDTZJH
System.out.println("name="+name); //name=MZDTZJH
System.out.println("大家好,我叫"+name); //大家好,我叫MZDTZJH
System.out.println("大家好,我叫"+name+",今年"+age+"岁了"); //大家好,我叫MZDTZJH,今年138岁了
 > 任何类型的数据与String相连,结果都会变为String类型,字符串不能做加减法
System.out.println(10+20+""+30); //3030---------String
System.out.println(""+10+20+30); //102030-------String
System.out.println(10+20+30+" "); //60 -----------String 字符串有同化作用

条件运算符:

  • 语法:

    //也叫三目运算
    boolean?表达式1:表达式2
    
  • 执行过程:

    判断boolean的值:
      若为true,则整个表达式的值为?号后的表达式1
      若为false,则整个表达式的值为:号后的表达式2
    
  • 代码展示:

    int num = 5;
    int flag = num>0?1:-1; //如果num大于0,输出1,佛则输出-1
    System.out.println(flag); //1
    
    int a=8,b=55;
    int max = a>b?a:b;
    System.out.println("max="+max);
    

分支结构:基于条件执行的语句

if结构:

  • 语法:

    if(boolean){
    语句块-----------基于条件执行的语句
    }
    
    • 执行过程:

      判断boolean的值:
      	若为true,则执行语句块(整个结束)
      	若为false,则if直接结束
      
    • 代码演示:

      int num = 6; //带数(6,5)
      if(num%2==0){
          System.out.println(num+"是偶数");
      }
      System.out.println("继续执行...");
      
      double price = 300.0; //消费金额
      if(price>=500){ //满500   带数(600.0,300.0)
          price*=0.8; //打8折
      }
      System.out.println("最终结算金额为:"+price);
      

if…else结构:

  • 语法:

     if(boolean){
     	语句块1
     }else{
         语句块2
     }
    
  • 执行过程:

    判断boolean的值:
      若为true,则执行语句块1(整个结束)
      若为false,则执行语句块2(整个结束)
    
    • 说明:语句块1和语句块2,必走其中之一---------2选1

    • 代码演示:

      //带数(6,5)
      int num = 5;
      if(num%2==0){
          System.out.println(num+"是偶数");
      }else{
          System.out.println(num+"是奇数");
      }
      System.out.println("继续执行...");
      
      //带数(600.0,300)
      double price = 300.0; //消费金额
      if(price>=500){ //满500
          price*=0.8; //打8折
      }else{ //不满500
          price*=0.9; //打9折
      }
      System.out.println("最终结算金额为:"+price);
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值