符号 | 作用 | 说明 |
---|---|---|
= | 赋值 | int a =10, 将10赋值给变量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 |
代码演示
public class AssigningoperatorDemo1 {
public static void main(String[] args) {
// +=
//规则:将左边和右边进行相加,然后再把结果赋值给左边
int a = 10;
int b = 20;
//把a+b,再把结果赋值给左边的变量a
a += b;
//等同于 a = (int)(a + b);
System.out.println(a);//30
System.out.println(b);//20
//细节:
//+= -= *= /= %=底层都隐藏了一个强制类型转换
//把
short s = 1;
//把左边和右边进行相加,得到结果2,再赋值给左边的s
s += 1;
//等同于s = (short)(s + 1);
System.out.println(s);//2
}
}
符号 | 说明 |
---|---|
== | a==b,判断a和b的值是否相等,成立为true,不成立为false |
!= | a!=b,判断a和b的值是否不相等,成立为true,不成立为false |
> | a>b,判断a是否大于b,成立为true,不成立为false |
>= | a>=b,判断a是否大于等于b,成立为true,不成立为false |
< | a<b,判断a是否小于b,成立为true,不成立为false |
<= | a<=b,判断a是否小于等于b,成立为true,不成立为false |
public class CompareoperatorDemo1 {
public static void main(String[] args) {
//1.== 判断左右两边是否相等
int a = 10;
int b = 10;
int c = 20;
System.out.println(a == b);//true
System.out.println(a == c);//false
//!= 判断左右两边是否不相等
System.out.println(a != b);
System.out.println(a != c);
}
}
约会
**需求:**您和您的约会对象在餐厅里面正在约会。
键盘录入两个整数,表示你和你的约会对象衣服的时髦度。(手动录入0~10之间的整数,不能录其他)。如果你的时髦程度大于你对象的时髦程度,相亲就成功,输出true。
否则输出false
。
import java.util.Scanner;
public class test2 {
public static void main(String[] args) {
/* 需求:
您和您的约会对象正试图在餐厅获得一张桌子。
键盘录入两个整数,表示你和你约会对象衣服的时髦度。(手动录入0~10之间的整数,不能录入其他。)
如果你的时髦程度大于你约会对象的时髦程度,相亲就成功,输出true。
否则就输出false
*/
//1.键盘录入两个整数表示衣服的时髦度
Scanner sc = new Scanner(System.in);
System.out.println("请输入我们自己的衣服时髦度");
int myFashion = sc.nextInt();
System.out.println("请输入约会对象衣服的时髦度");
int girlFashion = sc.nextInt();
//2.把我衣服的时髦度和女孩衣服的时髦度进行对比就可以了。
boolean result = myFashion > girlFashion;
//3.打印结果
System.out.println(result);
}
}
&&
符号 | 作用 | 说明 |
---|---|---|
&& | 短路与 | 结果和**&相同,但是有短路**效果 |
|| | 短路或 | 结果和 | 相同,但是有短路效果 |
代码演示
public class LogicoperatorDemo3 {
public static void main(String[] args) {
//1.&&
//运行结果和单个&是一样的
// 表示两边都为真,结果才是真
System.out.println(true && true);
System.out.println(false && true);
System.out.println(false && true);
System.out.println(true && false);
//2.||
//运行结果和单个|一样
//表示两边都为假,结果才为假。
System.out.println(true || true);//false
System.out.println(false || false);//true
System.out.println(false || true);//true
System.out.println(true || false);//true
//3.短路逻辑运算符具有短路效果
//简单理解:当左边的表达式能确定最终结果,那么右边就不会参与运行了。
int a = 10;
int b = 10;
boolean result = ++a < 5 && ++b < 5;
System.out.println(result);
System.out.println(a);//11
System.out.println(b);//10
}
}
注意:
& |
,无论左边是true
还是false
,右边都要执行。&& ||
,如果左边就能确定整个表达式的结果,右边不执行。&&
,左边为false
,右边不管是真是假,整个表达式的结果一定是false
。||
,左边为true
,右边不管是真是假,整个表达式的结果一定是true
.这两种情况下,右边不执行,提高了效率。
&& || !
.需求:数字6是一个真正伟大的数字,键盘录入两个整数。
如果其中一个是6,最终结果输出true
。
如果它们的和为6的倍数,最终结果输出true
。
其他情况均为false
.
代码演示
import java.util.Scanner;
public class test3 {
public static void main(String[] args) {
/*
数字6是一个真正伟大的数字,键盘录入两个整数。
如果其中一个是6,最终结果输出true。
如果它们的和为6的倍数,最终结果输出true。
其他情况均为false.*/
//分析:
//1.键盘录入两个整数
//变量a 变量b
//2.a == 6 || b == 6 || (a + b) % 6 == 0;
//键盘录入两个整数
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数");
int number1 = sc.nextInt();
System.out.println("请输入第二个整数");
int number2 = sc.nextInt();
//可以用短路逻辑运算符去连续三个判断
boolean result = number1 == 6 || number2 == 6 || (number1 + number2) % 6 == 0;
System.out.println(result);
}
}