关系运行符
关系运算符的运算结果只有两个:true 或者 false
| > | < | >= | <= | == |
==
: 如果等号两边是数值类型的数据可以当做值来比较(数值类型数据具有共享性),但其真正的原理是比较两个数据的存放在计算机内存的地址值是否相等。
equals
:当需要比较两个字符串内的内容是否相等时,不可以使用==
,因为每个字符串在定义时都会开辟一片新的内存空间,。我们可以使用equals
关键字来比较两个字符串类型的数值。
例如:
String i="chen";
String b="yue";
if (i.equals(b)){
}
逻辑运算符
&&(逻辑与) | ||(逻辑或) | !(非) |
---|
逻辑与:&&
运算规则:所有的表达式都为true,结果才为true。有一个为false,结果就为false。逻辑或:||
运算规则: 所有的表达式都为false,结果才为false。有一个为true,结果就为true。非:!
运算结果也是只有两个: true或者false
备注:&&和||存在短路功能。从前往后执行只要知道最终结果了,后面的表达式就不在参与运算。
a | b | a&&b | a||b | !a |
---|---|---|---|---|
true | true | true | true | false |
true | false | false | true | false |
false | true | false | true | true |
false | false | false | false | true |
按位运算符
按位与:&
按位或:|
在java中有两个作用:做算术运算,做关系运算
做算术运算:
按位与:&
:按二进制位进行"与"运算,有 0 则为 0按位或:|
:按二进制位进行"或"运算,有 1 则为 1
做关系运算:所有的表达式都要执行(不存在短路功能)。
面试题: && ||和 & |之间的区别?
总结:
- 逻辑运算符只能做关系运算,按位运算符可以做关系运算和算数运算
- 做关系运算时,逻辑与:(
&&
)与逻辑或:(||
)的有短路效果,(&&第一个条件为假整个表达式直接为假,||第一个条件为真直接为真)而按位&和按位|没有短路效果 - 按位运算符在做算术运算时,按位与是
有 0 则为 0
,按位或是有1则为1
运算符的优先级
如图:从上往下,从左往右优先级逐次递减:
条件运算符(三目运算符)
语法: 布尔表达式 ? 值1:值2;
解析: 当布尔表达式为true的时候,结果为值1的值,为false时为值2的值。且值1和值2的数据类型没有限制。
例:
int i=3;
int j=6;
System.out.println(i>j? "是的":"不是");
扫描器(Scanner)
作用:获取控制台输入的数据
语法:
需在主函数后引用此方法:Scanner sc=new Scanner(System.in);
当需要从控制台输入int型
数据存到变量chen
内时:int chen= sc.nextInt();
常用的方法:
sc.nextInt();获取控制台输入的int类型数据
sc.nextDouble();获取控制台输入的double类型数据
sc.next();获取控制台输入的String类型数据
例:
Scanner sc=new Scanner(System.in);
System.out.println("请输入年份:");
int year=sc.nextInt();