前言:
选择结构是编程中常用的一种控制流程结构,用于根据条件的真假来决定程序的执行路径。在Java中,选择结构主要包括if语句和switch语句。本文将详细介绍这两种选择结构的基本用法,并通过案例来加深理解。
目录
1.if语句
1.1 基本用法
if语句用于根据一个条件的真假来决定是否执行一段代码。if语句的基本语法为:
if (条件) {
// 执行语句
}
if语句主要有三种形式,如下图所示:
1.2 多重if语句
如果有多个条件需要判断,可以使用多重if语句。多重if语句的语法为:
if (条件1) {
// 执行语句1
} else if (条件2) {
// 执行语句2
} else {
// 执行语句3
}
1.3 if-else语句
if-else语句用于在条件为真或假时执行不同的代码块。if-else语句的语法为:
if (条件) {
// 执行语句1
} else {
// 执行语句2
}
2.switch语句
2.1 基本用法:
switch语句用于根据一个表达式的值,选择执行相应的代码块。switch语句的基本语法为:
switch (表达式) {
case 值1:
// 执行语句1
break;
case 值2:
// 执行语句2
break;
default:
// 执行语句3
break;
}
2.2case穿透
在switch语句中,每个case后面都需要使用break
语句来结束当前的代码块。但有时候我们希望多个case执行相同的代码,可以使用case穿透。案例中会详细介绍这种用法。
2.3default语句
如果没有任何一个case匹配到表达式的值,将会执行default语句块中的代码。
3.分支嵌套
分支嵌套语句是指在一个条件语句内部嵌套了另一个条件语句,也称为嵌套if语句。这种分支结构可以用于处理更复杂的逻辑判断。
分支中包含分支,如下图所示:
分支嵌套举例:
int num1 = 10;
int num2 = 20;
if (num1 > num2) {
System.out.println("num1大于num2");
if (num1 == 10) {
System.out.println("num1等于10");
} else {
System.out.println("num1不等于10");
}
} else {
System.out.println("num1小于等于num2");
}
在这个示例中,首先比较了num1和num2的值。如果num1大于num2,我们打印出"num1大于num2",然后嵌套了一个条件语句来判断num1的值是否等于10。如果num1等于10,我们打印出"num1等于10",否则打印出"num1不等于10"。如果num1不大于num2,我们打印出"num1小于等于num2"。
注意,在使用嵌套if语句时,需要注意缩进和代码的可读性。通常建议将内层的if语句缩进,以使其与外层if语句分开,这样可以使代码更清晰易懂。
4.案例分析
4.1 求解最大值
案例中将演示如何使用if语句来求解两个数的最大值。
输入两个整数,显示两个数中较大的数,如下图所示:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个整数:");
int num1 = scanner.nextInt();
System.out.println("请输入第二个整数:");
int num2 = scanner.nextInt();
int max = Math.max(num1, num2);
System.out.println("较大的数是:" + max);
}
}
这段代码首先创建一个Scanner
对象来从用户那里接收输入。然后,我们要求用户输入两个整数。我们使用Math.max()
函数来找出这两个数中较大的那一个,然后打印出这个较大的数。
4.2 判断闰年
案例中将演示如何使用switch语句来判断一个年份是否为闰年。
import java.util.Scanner;
public class LeapYear {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入年份:");
int year = input.nextInt();
switch (year % 4) {
case 0:
if ((year % 100 == 0) && (year % 400 != 0)) {
System.out.println(year + "不是闰年");
} else {
System.out.println(year + "是闰年");
}
break;
default:
System.out.println(year + "是闰年");
break;
}
}
}
在这个例子中,我们使用Scanner类从用户输入中获取年份。然后,我们使用switch语句来判断年份是否为闰年。根据闰年的定义,一个年份如果是闰年,那么它必须满足以下条件之一:
- 能被4整除但不能被100整除;
- 能被400整除。
我们使用switch语句来判断年份是否能被4整除。如果不能被4整除,直接输出该年份不是闰年。如果能够被4整除,我们需要进一步判断该年份是否能被100整除且不能被400整除。如果满足这个条件,则输出该年份不是闰年;否则,输出该年份是闰年。在每个case语句的末尾,我们使用break语句来结束当前的代码块。
4.3 计算BMI指数
案例中将演示如何使用if-else语句来计算一个人的BMI指数。
import java.util.Scanner;
public class BMI {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入您的体重(kg):");
double weight = scanner.nextDouble();
System.out.println("请输入您的身高(m):");
double height = scanner.nextDouble();
double bmi = weight / (height * height);
if (bmi < 18.5) {
System.out.println("您的BMI指数为:" + bmi + ",体重过轻。");
} else if (bmi >= 18.5 && bmi < 24.9) {
System.out.println("您的BMI指数为:" + bmi + ",体重正常。");
} else if (bmi >= 24.9 && bmi < 29.9) {
System.out.println("您的BMI指数为:" + bmi + ",体重过重。");
} else {
System.out.println("您的BMI指数为:" + bmi + ",肥胖。");
}
}
}
在这个程序中,我们使用Scanner类从用户那里获取体重和身高的输入值,然后计算BMI指数。最后使用if-else语句根据BMI指数的值打印出不同的消息,指出这个人的体重状态。
5.总结
通过本文的学习,我们了解了Java中选择结构的基本用法,并通过案例加深了对选择结构的理解。选择结构是编程中不可或缺的一部分,合理运用选择结构可以使程序更加灵活和高效。