一、if分支
根据判定的结果(真或假)决定执行某个分支的代码
if分支格式:
package com.study.branch;
import java.util.Scanner;
public class IfDemo01 {
public static void main(String[] args) {
//使用if分支结构解决问题
//需求:心跳60-100之间是正常的,否则提示进一步检查
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的心跳:");
int heart = sc.nextInt();
if (heart >= 60 && heart <= 100) {
System.out.println("你是正常的");
} else {
System.out.println("你需要进一步检查");
}
}
}
package com.study.branch;
import java.util.Scanner;
public class IfDemo02 {
public static void main(String[] args) {
//实现成绩等级判定(0-100)
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的成绩:");
int score = sc.nextInt();
if (score >= 90 && score < 100) {
System.out.println("优");
} else if (score >= 80 && score < 90) {
System.out.println("良");
} else if (score >= 60 && score < 80) {
System.out.println("中");
} else if (score >= 0 && score < 60) {
System.out.println("差");
} else {
System.out.println("你输入的成绩有误,请重新输入");
}
}
}
总结:if 语句后面可以跟 else if…else 语句,这种语句可以检测到多种可能的情况。使用 if,else if,else 语句的时候,需要注意下面几点:
1.if 语句至多有 1 个 else 语句,else 语句在所有的 else if 语句之后。
2.if 语句可以有若干个 else if 语句,它们必须在 else 语句之前。
3.一旦其中一个 else if 语句检测为 true,其他的 else if 以及 else 语句都将跳过执行。
二、switch分支
匹配条件去执行分支,适合做值匹配的分支选择,结构清晰,格式良好。switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
执行流程:
1.先执行表达式的值,拿着这个值去与case后的值进行匹配。
2.匹配哪个case的值为true就执行哪个case,遇到break就跳出switch分支。
3.如果case后的值都不匹配则执行default代码。
package com.study.branch;
import java.util.Scanner;
public class SwitchDemo {
public static void main(String[] args) {
//使用switch分支结构判定成绩
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的成绩等级(A、B、C、D、F):");
String grade = sc.next();
switch (grade) {
case "A":
System.out.println("优秀");
break;
case "B":
System.out.println("良好");
break;
case "C":
System.out.println("及格");
break;
case "D":
System.out.println("你需要再努力了");
break;
default:
System.out.println("未知等级");
}
System.out.println("你的等级是" + grade);
}
}
注意:如果 case 语句块中没有 break 语句时,匹配成功后,从当前 case 开始,后续所有 case 的值都会输出。eg:
package com.study.branch;
public class SwitchDemo2 {
public static void main(String[] args) {
//switch语句的穿透性
int i = 1;
switch (i) {
case 0:
System.out.println("0");
case 1:
System.out.println("1");
case 2:
System.out.println("2");
default:
System.out.println("default");
}
}
}