Java入门(运算符、流程控制)
关系运算符
>
<
==
>=
<=
!=
关系运算符返回的数据类型为boolean,一般用来做条件判断
逻辑运算符
&&
||
!
&
|
&&
||
会产生短路现象
&&
左边为假,右边不执行
||
左边为真,右边不执行
!
非真即假
int a = 100;
boolean b3 = a > 50 && ++a / 3 == 0;
System.out.println(b3);//false
System.out.println(a);101
三元运算符
语法:boolean exp? exp1:exp2;//a>b?a:b
含义:当boolean表达式exp返回true时,则输出exp1,返回false时,输出exp2
- 三元运算符返回的结果类型必须统一
- 三元运算符会产生短路现象
//1代表男,0代表女,其他代表保密
int sex = 0;
String s = sex == 1 ? "男" : sex == 0 ? "女" : "保密";
System.out.println(s);
流程控制语句
- 判断
- 循环
判断条件
- if if(){}else{} if(){}else if{}else{}
- switch
if判断
- if是一个语句
- if语句不需要用;结尾,判断条件就是boolean表达式
if (a>=80){
System.out.println("优秀");
}
双分支条件判断
int a = 81;
if (a>=80){
System.out.println("优秀");
}else if (a>=70){
System.out.println("良好");
}
多分支条件判断
- else if可以出现0~n次
- else出现0~1次
int a = 81;
if (a>=80){
System.out.println("优秀");
}else if (a>=70){
System.out.println("良好");
}else if (a>=60){
System.out.println("中等");
}else {
System.out.println("差");
}
switch
switch (表达式){
case 'A':
System.out.println("优秀");
break;//表中断,不能省略,防止switch穿透
case 'D':
System.out.println("及格");
break;
default:
System.out.println("差");
break;//可写可不写
- 表达式支持的类型byte,short,int,char,enum(枚举),String及其对应的包装类型
- default相当于if中的else效果
Switch(JDK14新特性)
JDK14新特性 当大括号中只有一条语句时,可省略大括号,并且case后可跟多个值
switch不仅仅可以作为一个语句,还可以作为一个表达式
如果{}中有多条语句,则必须通过yield返回数据
如果只有一行代码,且有大括号,则不能省略yield
如果只有一行代码,且省略了大括号,则必须省略yield (yield和{}并存)
switch (level){
//JDK14新特性 当大括号中只有一条语句时,可省略大括号
//并且case后可跟多个值
case 'A'-> System.out.println("优秀");
case 'B'-> System.out.println("良好");
case 'C'-> System.out.println("中等");
case 'D','E'-> System.out.println("及格");
default -> System.out.println("差");
}
//switch不仅仅可以作为一个语句,还可以作为一个表达式
int perDay = switch (i) {
//如果{}中有多条语句,则必须通过yield返回数据
case 1, 3, 5, 7, 8, 10, 12 -> {
System.out.println("中等");
yield 31;
}
case 2 -> {
//如果只有一行代码,且有大括号,则不能省略yield
//如果只有一行代码,且省略了大括号,则必须省略yield
yield feb;
}
case 4, 6, 9, 11 -> 30;
default -> 0;
};