赋值运算符和关系运算符
赋值运算符
分类
符号 | 作用 | 说明 |
---|---|---|
= | 赋值 | 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,再把结果赋值给左边的变量aa += b;//等同于 a = (int)(a + b);System.out.println(a);//30System.out.println(b);//20//细节://+= -= *= /= %=底层都隐藏了一个强制类型转换//把short s = 1;//把左边和右边进行相加,得到结果2,再赋值给左边的ss += 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 |
- **注意:**关系运算符的结果都是boolean类型,要么是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);//trueSystem.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);//falseSystem.out.println(false || false);//trueSystem.out.println(false || true);//trueSystem.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);//11System.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);}
}