java基础之 运算符
运算符分成:
- 算术运算符
- 关系运算符
- 逻辑运算符
- 位运算符
- 赋值运算符
- 其他运算符
一、算数运算符
算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。
public class Main { public static void main(String[] args) { // 加法 + 相加运算符两侧的值 // + 和字符串进行运算,起的是拼接作用 System.out.println("1+2=" + (1 + 2)); System.out.println("‘00‘+2=" + ("00" + 2)); // 输出: // 1+2=3 // ‘00‘+2=002 //减法 - 左操作数减去右操作数 System.out.println("10-1.9=" + (10 - 1.9)); //输出:10-1.9=8.1 //乘法 * 相乘操作符两侧的值 System.out.println("2*3=" + (2 * 3)); //输出:2*3=6 //除法 / 左操作数除以右操作数 //java中整数除于整数得到整数,产生的小数将强制去除 //如果预计会出现小数,请使用双精度小数进行计算 System.out.println("2/9=" + (2 / 9)); System.out.println("5/3=" + (5 / 3)); System.out.println("5.0/3=" + (5.0 / 3)); System.out.println("5/3.0=" + (5 / 3.0)); //被除数为0的,触发异常 //System.out.println(2 / 0); // 输出: // 2/9=0 // 5/3=1 // 5.0/3=1.6666666666666667 // 5/3.0=1.6666666666666667 //取余 % 左操作数除以右操作数的余数 System.out.println("2%9=" + (2 % 9)); System.out.println("9%4=" + (9 % 4)); // 输出: // 2%9=2 // 9%4=1 //自增运算 ++ //++i; 表示先进行i=i+1后得到i的值 //i++; 表示先得到i的值,在进行i=i+1; //自减运算符 -- 也同理 int i = 1; System.out.println("i=1,2*++i=" + (2*++i)); int j=1; System.out.println("j=1,2*j++=" + (2*j++)); // 输出: // i=1,2*++i=4 // j=1,2*j++=2 } }
二、关系运算符
关系运算符主要用于计算布尔运算的,返回值只有Boolean类型的值。
public class boolTest { public static void main(String[] args) { // == 检查如果两个操作数的值是否相等,如果相等则条件为真。 System.out.println("1==1.0 " + (1 == 1.0)); // != 检查如果两个操作数的值是否相等,如果值不相等则条件为真。 System.out.println("1!=1 " + (1 != 1)); // > 检查左操作数的值是否大于右操作数的值,如果是那么条件为真。 System.out.println("10.1>10 " + (10.1 > 10)); // < 检查左操作数的值是否小于右操作数的值,如果是那么条件为真。 System.out.println("10.1<10 " + (10.1 < 10)); // >= 检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。 System.out.println("10.1>=10 " + (10.1 >= 10)); // <= 检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。 System.out.println("10.1<=10 " + (10.1 <= 10)); } }
//结果:
// 1==1.0 true
// 1!=1 false
// 10.1>10 true
// 10.1<10 false
// 10.1>=10 true
// 10.1<=10 false
三、逻辑运算符
java中逻辑运算符分为:&、&&、|、||、!
&、&&表示:true&true=true、true&false=false、false&false=false; |、||表示:true|true=true、true&false=true、false&false=false;
!表示:翻转逻辑状态,例如:!true=fasle;
其中的单个逻辑运算符表示先计算在比较,双逻辑运算符如果左边表达式已经得出结果,则不计算右边表达式。
package test; public class AndOr { public static void main(String[] args) { boolean a = (1 == 1); System.out.println("双或:" + (a || m1(1))); System.out.println("单或:" + (a | m1(1))); } //这是用来测试是否调用了右边的表达式 public static boolean m1(int num) { System.out.println("执行了m1()..."); return num > 10; } /* 结果: 双或:true 执行了m1()... 单或:true */ }
四、位运算符
java定义的位运算符有
&:如果相对应位都是1,则结果为1,否则为0;
|:如果相对应位都是0,则结果为0,否则为1
^:如果相对应位值相同,则结果为0,否则为1
〜:按位取反运算符翻转操作数的每一位,即0变成1,1变成0。
<<:按位左移运算符。左操作数按位左移右操作数指定的位数。
>>:按位右移运算符。左操作数按位右移右操作数指定的位数。
>>>:按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。
package test; public class BitOper { public static void main(String[] args) { int a = 4;// 4 = 0100 int b = 13;// 13 = 1101 // & 如果相对应位都是1,则结果为1,否则为0 // 0100 & 1101 = 0100 System.out.println("4&13=" + (a & b)); // | 如果相对应位都是0,则结果为0,否则为1 // 0100 | 1101 = 1101 System.out.println("4|13=" + (a | b)); // ^ 如果相对应位值相同,则结果为0,否则为1 // 0100 ^ 1101 = 1001 System.out.println("4^13=" + (a ^ b)); // ~ 按位取反运算符翻转操作数的每一位,即0变成1,1变成0。 // ~0100 = 1011 System.out.println("~4=" + (~a)); // << 按位左移运算符。左操作数按位左移右操作数指定的位数。 // 0100<<2=0001 0000 System.out.println("4<<2=" + (a<<2)); // >> 按位右移运算符。左操作数按位右移右操作数指定的位数。 // 0100>>2=0001 System.out.println("4>>2=" + (a>>2)); // >>> 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。 // 1100>>>2=0011 System.out.println("12>>>2=" + (12>>>2)); } }
打印结果:
4&13=4 4|13=13 4^13=9 ~4=-5 4<<2=16 4>>2=1 12>>>2=3
五、赋值运算符
赋值运算符包括 =、+=、-=、*=、/=、%=、<<=、>>=、&=、|=、^=
其中:
= 表示把 右边的值赋值给左边;
a+=b 等同于 a=a+b;
a-=b 等同于 a=a-b;
a*=b 等同于 a=a*b;
a/=b 等同于 a=a/b;
a%=b 等同于 a=a%b;
a<<=b 等同于 a=a<<b;
a>>=b 等同于 a=a>>b;
a&=b 等同于 a=a&b;
a|=b 等同于 a=a|b;
a^=b 等同于 a=a^b;
原创内容,如果你觉得文章还可以的话,不妨点个赞支持一下!转载请注明出处。