if else if else分支结构
适用类型:用户有多种选择的时候
if(条件表达式1) {
语句块1; }
else if(条件表达式2) {
语句块2; }
else {
语句块n; }
判断条件表达式1是否成立
=> 若成立,则执行语句块1;
=> 若不成立,则判断条件表达式2是否成立
=> 若成立,则执行语句块2;
=> 若不成立,则执行语句块n;
package demo;
/*
编程实现if else if else分支结构的使用,来模拟购买火车票的过程
*/
import java.util.Scanner;
public class IfElseifElseTest {
public static void main(String[] args) {
// 1.提示用户输入身份信息并使用变量记录
System.out.println("请输入您的身份信息:");
Scanner sc = new Scanner(System.in);
String str = sc.next();
// 2.使用if else if else分支结构判断身份信息并给出对应的提示
// 判断"军人"是否等于str,是否与str的数值相等
if("军人".equals(str)) {
System.out.println("请免费乘车!");
} else if("学生".equals(str)) {
System.out.println("请购买半价票!");
} else {
System.out.println("请购买全价票!");
}
// 3.打印一句话
System.out.println("坐上了火车去拉萨,去看那美丽的布达拉!");
}
}
案例一
根据用户输入的薪水计算个人所得税并打印出来,其中个税起征点为5000元,具体规则如下:
应纳税所得:薪水减去500剩下的
package demo;
/*
编程使用if else if else分支结构来计算个人所得税
*/
import java.util.Scanner;
public class IfSalaryTest {
public static void main(String[] args) {
// 1.提示用户输入个人的薪水并使用变量记录
System.out.println("请输入您的薪水:");
Scanner sc = new Scanner(System.in);
// 局部变量:作用范围是从声明开始一直方法体结束
int salary = sc.nextInt();
// 2.使用if else if else分支结构判断薪水所在的范围并计算对应的个人所得税
// 个人所得税公式: 本月应纳税所得额 * 对应的税率 - 速算扣除数
double salaryPrice = 0.0;
if(salary <= 5000) {
System.out.println("无需纳税!");
}
else if(salary <= 8000) {
// 块变量:作用范围是从声明开始一直到当前语句块结束
//double salaryPrice = (salary - 5000) * 0.03;
//salaryPrice = (salary - 5000) * 0.03;
salaryPrice = (salary - 5000) * 0.03 - 0;
}
else if(salary <= 17000) {
//salaryPrice = (salary - 8000) * 0.1 + (8000 - 5000) * 0.03;
salaryPrice = (salary - 5000) * 0.1 - 210;
}
else if(salary <= 30000) {
//salaryPrice = (salary - 17000) * 0.2 + (17000 - 8000) * 0.1 + (8000 - 5000) * 0.03;
salaryPrice = (salary - 5000) * 0.2 - 1410;
}
// ...
// 3.打印最终的计算结果
System.out.println("最终的个人所得税是:" + salaryPrice);
}
}
案例二
- 出租车计费方式:由里程钱数和等候时间钱数相加得出。
- 里程数前3公里13元,超过3公里到15公里部分每公里2元, 15公里以上部分每公里3元。
- 等候时间每2分半1元,不足部分不要钱。
- 输入公里数和等候秒数,输出车费。
- 举例:16公里,等候290秒,车费 = 13 +( 15-3) *2 + ( 16-15) *3 + 1 = 41
package demo;
/*
编程使用if分支结构实现出租车计费系统的实现
*/
import java.util.Scanner;
public class IfTaxiTest {
public static void main(String[] args) {
// 1.提示用户输入公里数和等待的秒数并使用变量记录
System.out.println("请输入公里数和等待的秒数:");
Scanner sc = new Scanner(System.in);
int km = sc.nextInt();
int sec = sc.nextInt();
// 2.根据公里数计算对应的里程费并使用变量记录
int kmPrice = 0;
if(km <= 3) {
kmPrice = 13;
} else if(km <= 15) {
kmPrice = 13 + (km - 3) * 2;
} else {
kmPrice = 13 + (15 - 3) * 2 + (km - 15) * 3;
}
// 3.根据等待的秒数来计算对应的等待费并使用变量记录
int secPrice = sec / 150;
// 4.计算总费用并打印
int sumPrice = kmPrice + secPrice;
System.out.println("本次出租车的总费用是:" + sumPrice);
}
}
案例三
提示用户输入考试的成绩,使用if-else if-else分支结构判断所在等级并打印。
[90 ~ 100] 等级A
[80 ~ 89] 等级B
[70 ~ 79] 等级C
[60 ~ 69] 等级D
[0 ~ 59] 等级E
package demo;
/*
编程使用if else if else分支结构判断考试成绩所在的等级
*/
import java.util.Scanner;
public class IfScoreTest {
public static void main(String[] args) {
// 1.提示用户输入考试成绩并使用变量记录
System.out.println("请输入您的考试成绩:");
Scanner sc = new Scanner(System.in);
int score = sc.nextInt();
// 2.使用if else if else分支结构判断所在的等级并打印
// 90 / 10 = 9; 91 / 10 = 9; 92 / 10 = 9; 99 / 10 = 9; 100 / 10 = 10;
if(score >= 90 && score <= 100) { // case 9: case 10:
System.out.println("等级A");
} else if(score >= 80) { // case 8:
System.out.println("等级B");
} else if(score >= 70) { // case 7:
System.out.println("等级C");
} else if(score >= 60) { // case 6:
System.out.println("等级D");
} else { // default:
System.out.println("等级E");
}
}
}