if语句
if …
格式:
if (关系表达式) {
语句体;
}
若关系表达式成立,则执行语句体;若不成立,则跳过该语句体
//代码演示
public class IfDemo1{
public static void main(String[] args){
int a = 10;
int b = 10;
if(a==b){
System.out.println("a与b值相同");
}
if(a+1<b){
System.out.println("a与b值不同");
}
//最终结果:a与b值相同
}
}
- 注意:当if后只有一条语句时,大括号可以省略(若没有大括号,if默认的作用域只到其后的第一个封号前)
- 在使用选择结构或循环结构时,尽量不要省略大括号
if … else …
格式:
if (关系表达式) {
语句体1;
}else{
语句体2;
}
若关系表达式成立,则执行语句体1,若关系表达式不成立,则执行语句体2
//代码演示
public class IfDemo2{
public static void main(String[] args){
int a = 10;
int b = 20;
if(a==b){
System.out.println("两数相等");
}else{
System.out.println("两数不等");
}
//所得结果:两数不等
}
}
if … elseif … elseif … else …
格式:
if (关系表达式1) {
语句体1;
}else if (关系表达式2){
语句体2;
}
…
}else if (关系表达式n){
语句体n;
}else{
语句体n+1;
}
若关系表达式1成立,则执行语句体1,若关系表达式1不成立,则向下判断,若关系表达式2成立,则执行语句体2,同理,若关系表达式2不成立,就依次向下判断,直到某个关系表达式成立,执行对应语句体,若关系表达式全都不成立,就执行else中的语句体n+1
//代码演示
public class IfDemo3{
public static void main(String[] args){
int a = 10;
int b = 10;
if(a>b){
System.out.println("a>b");
}else if(a<b){
System.out.println("a<b");
}else if(a+1<b){
System.out.println("a+1<b");
}else{
System.out.println("a=b");
}
//输出结果: a=b
}
}
- 注意:只要有一个关系表达式成立,执行完对应位置的语句体后,剩余的全部语句都不再执行,表明此 if 选择结构到此结束
switch语句
格式:
switch (key){
case value1:
语句体1;
break;
case value2:
语句体2;
break;
…
default:
语句体n;
break;
}
//代码演示
public class SwitchDemo1{
public static void main(String[] args){
//输入A,B,C
String s = "B";
switch (s){
case "A":
System.out.println("等级为A");
break;
case "B":
System.out.println("等级为B");
break;
case "C":
System.out.println("等级为C");
break;
default:
System.out.println("输入错误");
break;
}
//输出结果: 等级为B
}
}
- 注意:
- default是可以放在 switch 中的任意位置的,最上面、中间、最下面都可以
- default可以省略不写,此时,若 value 的值全都不匹配,就什么都不执行,并且switch执行完成
- switch的穿透效果:当去掉某一语句体中的break之后,若 key 与 该 value 匹配成功,则在执行此语句体的同时,对下一个 value 也不再进行匹配判断,将直接执行下一语句体,直到遇到下一个 break 后停止,若一直没有 break ,则将执行到 switch 末尾结束
- switch中 case 可以有无限多个,但每个 case 中的 value 必须唯一
- case后面只能跟常量,不能跟变量
- key的值只能是byte,short,int,char,枚举(enum),String
//switch穿透案例
public class SwitchDemo2{
public static void main(String[] args){
//输入月份,判断季节
int month = 3;
switch (month){
case 12:
case 1:
case 2:
System.out.println("冬季");
break;
case 3:
case 4:
case 5:
System.out.println("春季");
break;
case 6:
case 7:
case 8:
System.out.println("夏季");
break;
case 9:
case 10:
case 11:
System.out.println("秋季");
break;
default:
System.out.println("月份输入有误");
break;
}
//输出结果: 春季
}
}