【Java】Java基础学习之运算符

在Java学习中,有大概以下几种运算符:

基础运算符

     基础运算符包括以下几种:

 +(加法)        -(减法)        *(乘法)        /(除法)          %(取余)

代码演示:
    System.out.println(10 + 20);  //30
    System.out.println(10 - 20);  //-10
    System.out.println(10 * 20);  //200
    System.out.println(10 / 3);   // 整数和整数计算的结果必须是整数 3
    System.out.println(10 % 3);   // 1
    System.out.println(7  % 10);  // 7
    System.out.println(13 % 5);   // 3

在Java中,整数运算的结果还是整数。

除法和取余:

       相当于小学除法运算,在Java中,除法得到的结果相当于小学除法中的商,而取余得到的是除法运算的余数

字符的“+”操作

      每个字符的底层其实就是一个数字,当字符进行加法运算的时候,结果就会变成一个数字。

      除汉字之外,其他的字符的底层的数字都可以参考ASCII码表。

System.out.println('a' + 1);  //98    'a' -->  97
System.out.println('A' + 1);  //66    'A' -->  65
System.out.println('0' + 1);  //49    '0' -->  48 
System.out.println('我'+ 1); //25106  '我'-->  25105

字符串的“+”操作

      字符串中出现加操作的时候就不再是加法运算,而是具有了拼接效果,字符串和任意类型连接都会变成一个更大的字符串

System.out.println("黑马" + 66 + 6);    //"黑马666"
System.out.println(99 + 1 + "黑马");    //"100黑马"
System.out.println("黑马" + (66 + 6));  //"黑马72"

// 10+20=30
System.out.println(10 + "+" + 20 + "=" + 30);     // 10+20=30

       如果数字相加在字符串前面,则先进行数字的加法运算,在进行字符串的连接,如果数字相加在字符串的后面,在进行的是字符串的连接操作【有括号先执行括号的内容】

赋值运算符

=    +=    -=    *=    /=     %=

a += 20;        //相当于 a = a + 20;

a -= 20;         //相当于 a = a - 20;

a *= 20;         //相当于 a = a * 20;

a /= 20;         //相当于 a = a / 20;

a %= 20;      //相当于 a = a % 20;

自增自减运算符

++(给变量自身加一)    --(给变量自身减一)  

++前置:
    ++a;
        先加一,后运算

后置++:
    a++;
        先运算,后加一

int a = 10;
//先把a的值赋值给b,然后a自身再加一
int b = a++;
System.out.println(a); //11
System.out.println(b); //10
		
int a = 10;
//先让a自身加一,然后再把a的值赋值给b
int b = ++a;
System.out.println(a); //11
System.out.println(b); //11

关系运算符

>   <   ==   !=   >=   <=

关系运算符的结果一定是boolean类型。
=是赋值   ==是判断相等  ,千万不要把 == 写成 =

逻辑运算符

&    :与
    
左右两端都是true,结果才是true,否则是false
|   :或
    
左右两端都是false,结果才是false,否则是true
^   :异或
     两边相同为false,两边不同为true
!   :非
     取反

int a = 10;
int b = 20;
//a++是后置,所以先运算后加一 10>10 false
//++b是前置,所以先加一后运算 21>20 true
System.out.println(a++>10 & ++b>20);   // false&true  --> false
		
//在执行这行之前a已经是11了,11>10 true
//在执行这行之前b已经是21了,21>21 false
System.out.println(a++>10 | b++>21);   // true|false  --> true
		
System.out.println(true  ^ true);    //false
System.out.println(false ^ true);    //true
System.out.println(true  ^ false);   //true
System.out.println(false ^ false);   //false
		
//!取反
System.out.println(!(a>20));   //true
System.out.println(!!(a>20));  //false

逻辑中断

&&  :短路与
     如果左边结果是false,右边就不会执行了。
||  :短路或
     如果左边结果是true,右边就不会执行了。

int c = 10;
int d = 20;
//c++后置,10>10 false c变成11  右边不执行
System.out.println(c++>10 && ++d>20);  //false
//++d前置,先变成21,21>21 false  11>10 true             
System.out.println(++d>21 || c++>10);  //true
System.out.println(c); //12
System.out.println(d); //21

三元运算符

格式:
    数据类型 变量名 = 关系表达式 ? 表达式1 : 表达式2;
执行原理:
    如果关系表达式是true,就把表达式1赋值给变量
    如果关系表达式是false,就把表达式2赋值给变量

//求两个数字的较小值
int a = 10;
int b = 20;
int c = a > b ? b : a;
System.out.println(c);  //10

猜你喜欢

转载自blog.csdn.net/weixin_43267344/article/details/107521760