一、java运算符
1、算术运算
package operator;
public class a {
public static void main(String[] args) {
int a = 10;
int b = 100;
int c = 2;
int d = 12;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/((double)b));
//double强制转换,防止小数舍入
}
}
自增:++
自减:–
package operator;
public class b {
public static void main(String[] args) {
int a = 10;
int b , c;
b = a++;
//先把a的值赋予给b,a再自增
c = ++a;
//先把a自增,再把a的值赋予给b
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
}
concle
a = 12
b = 10
c = 12
2、逻辑运算符
与:&&
或:||
非:!
package operator;
public class c {
public static void main(String[] args) {
boolean a = true;
boolean b = false;
System.out.println("a && b : " + (a&&b));
/*字符串拼接的时候,直接输出内容不同于python的 " " 和' '都可以,只能用双引号 " " ,中间 使用 + 连接*/
System.out.println("a || b : " + (a||b));
//+ 后面内容必须添加()才能识别
System.out.println("!(a&&b) : "+ !(a&&b));
}
}
短路运算
一些逻辑运算,每行代码执行从左到右,若执行中断,则每行后续代码不执行
package operator;
public class d {
public static void main(String[] args) {
int a = 5;
boolean b = (a<4)&&(a++<4);
System.out.println(a);
//由于b在与符号前面就定义为false,后面没有执行,a没自增
System.out.println(b);
}
}
concle
a = 5
b = false
3、位运算符
^:异或,相同为零
<< :左移 >> :右移
package operator;
public class e {
public static void main(String[] args) {
int a = 2;
System.out.println(a<<3);
//二进制的展开右移三位
}
}
concle
16
4、三元运算符
?: a ? b : c ,当a为真(true),取b值,当a为假(false),取c值
package operator;
public class e {
public static void main(String[] args) {
int a = 2;
// System.out.println(a<<3);
int b = 10;
a += b;//a = a + b
System.out.println(a);
System.out.println(a+b);
System.out.println(""+a+b);
//拼接字符串时,若运算之前出现字符(包括空字符),则转换为拼接,后续+为拼接运算
System.out.println(a+b+"");
//若先运算,再出现字符(包括空字符),正常运算
int c = b < 10 ? 1 : 2;
//三元运算符,b<0,为真,则c=1,反则c=2
System.out.println(c);
}
}
concle
a = 12
a + b = 22
""+a+b = 1210
a+b+"" = 22
c = 2