文章目录
基础内容
在Java中,选择结构(也称为分支结构)用于根据不同的条件执行不同的代码块。这允许程序根据特定条件做出决策,从而改变其执行路径。Java提供了几种不同类型的选择结构,包括if
, if-else
, if-else if
, switch
等。
1. if
语句
if
语句是最基本的选择结构,它检查一个条件,如果条件为真,则执行相应的代码块。
语法:
if (condition) {
// 代码块
}
示例:
int x = 10;
if (x > 5) {
System.out.println("x is greater than 5");
}
2. if-else
语句
if-else
结构提供了一种处理两种情况的方法:如果条件为真则执行一个代码块,否则执行另一个代码块。
语法:
if (condition) {
// 当条件为真时执行的代码块
} else {
// 当条件为假时执行的代码块
}
示例:
int time = 20;
if (time < 18) {
System.out.println("Good day.");
} else {
System.out.println("Good evening.");
}
3. if-else if-else
语句
当有多个条件需要检查时,可以使用if-else if-else
结构。这种结构可以包含任意数量的else if
语句。
语法:
if (condition1) {
// 当 condition1 为真时执行的代码块
} else if (condition2) {
// 当 condition1 为假且 condition2 为真时执行的代码块
} else {
// 当所有前面的条件都为假时执行的代码块
}
示例:
int score = 85;
if (score >= 90) {
System.out.println("Grade A");
} else if (score >= 80) {
System.out.println("Grade B");
} else {
System.out.println("Grade C");
}
4. switch
语句
switch
语句允许基于不同的值来选择一个代码块执行。这是另一种形式的选择结构。
语法:
switch (expression) {
case value1:
// 代码块
break;
case value2:
// 代码块
break;
// 可以有任意数量的 case 语句
default:
// 如果没有匹配的 case,则执行此代码块
}
示例:
String day = "Sunday";
switch (day) {
case "Monday":
System.out.println("Today is Monday");
break;
case "Tuesday":
System.out.println("Today is Tuesday");
break;
case "Sunday":
System.out.println("Today is Sunday");
break;
default:
System.out.println("Not a valid day");
}
执行流程
- 对于
if
和if-else
结构,从上到下依次检查条件,一旦某个条件为真,则执行对应的代码块,并跳过剩余的条件。 - 对于
if-else if-else
结构,同样从上到下检查每个条件,一旦某个条件满足,就执行对应的代码块并退出整个结构。 switch
语句会先计算表达式的值,然后查找与该值匹配的case
标签。如果找到匹配项,则执行对应的代码块直到遇到break
语句或结构的结尾。如果没有匹配项,则执行default
代码块(如果有的话)。
这些控制结构是编写逻辑复杂的应用程序的基础,能够帮助程序员根据不同的输入或状态来决定程序的行为。
Java选择结构的应用案例
下面我会给出几个具体的Java选择结构的应用案例,包括使用if
、if-else
、if-else if-else
和switch
语句的例子。
案例 1: 使用 if
语句
假设我们需要编写一个简单的程序,根据年龄判断一个人是否成年。
public class AdultChecker {
public static void main(String[] args) {
int age = 22;
if (age >= 18) {
System.out.println("This person is an adult.");
}
}
}
在这个例子中,如果age
变量的值大于等于18,则输出“这个人是成年人”。
案例 2: 使用 if-else
语句
接下来,我们扩展上面的例子,添加一个else
分支,以便我们可以区分成年人和未成年人。
public class AdultChecker {
public static void main(String[] args) {
int age = 16;
if (age >= 18) {
System.out.println("This person is an adult.");
} else {
System.out.println("This person is not an adult.");
}
}
}
现在,如果年龄小于18岁,程序会输出“这个人不是成年人”。
案例 3: 使用 if-else if-else
语句
考虑一个更复杂的场景,例如根据学生的分数划分成绩等级。
public class GradeCalculator {
public static void main(String[] args) {
int score = 85;
if (score >= 90) {
System.out.println("Grade: A");
} else if (score >= 80) {
System.out.println("Grade: B");
} else if (score >= 70) {
System.out.println("Grade: C");
} else if (score >= 60) {
System.out.println("Grade: D");
} else {
System.out.println("Grade: F");
}
}
}
在这个例子中,根据分数的不同范围,程序会输出相应的成绩等级。
案例 4: 使用 switch
语句
我们还可以使用switch
语句来实现上述功能,这样可以让代码更加简洁。
public class GradeCalculator {
public static void main(String[] args) {
int score = 85;
switch (score / 10) {
case 10:
case 9:
System.out.println("Grade: A");
break;
case 8:
System.out.println("Grade: B");
break;
case 7:
System.out.println("Grade: C");
break;
case 6:
System.out.println("Grade: D");
break;
default:
System.out.println("Grade: F");
}
}
}
这里,我们通过取分数除以10的商来进行匹配,从而简化了代码。
总结
以上案例展示了如何使用Java中的选择结构来根据不同的条件执行不同的逻辑。这些结构对于编写逻辑清晰、易于维护的程序至关重要。在实际开发中,可以根据具体需求灵活地使用这些控制结构。
案例进阶
接下来,我们将探讨一些更具体的应用案例,这些案例涉及到了一些实际场景中的问题解决方法。
案例 5: 使用 if-else if-else
语句进行温度分类
假设你正在开发一款天气应用程序,需要根据气温将天气分类为冷、温和或热。
public class TemperatureClassifier {
public static void main(String[] args) {
double temperature = 22.5;
if (temperature < 10) {
System.out.println("It's cold outside!");
} else if (temperature < 20) {
System.out.println("It's moderate outside!");
} else {
System.out.println("It's hot outside!");
}
}
}
在这个例子中,程序根据给定的温度值输出相应的天气描述。
案例 6: 使用 switch
语句进行月份分类
假设你需要写一个程序,根据用户输入的月份名称输出该月份所在的季节。
public class SeasonFinder {
public static void main(String[] args) {
String month = "June";
switch (month.toLowerCase()) {
case "december":
case "january":
case "february":
System.out.println("It's winter.");
break;
case "march":
case "april":
case "may":
System.out.println("It's spring.");
break;
case "june":
case "july":
case "august":
System.out.println("It's summer.");
break;
case "september":
case "october":
case "november":
System.out.println("It's autumn.");
break;
default:
System.out.println("Invalid month.");
}
}
}
在这个例子中,我们使用switch
语句来判断输入的月份属于哪个季节。
案例 7: 使用 if-else
语句进行折扣计算
假设你正在为一家在线商店编写一个程序,该程序根据用户的购物总额提供不同的折扣。
public class DiscountCalculator {
public static void main(String[] args) {
double totalAmount = 150.00;
if (totalAmount >= 100 && totalAmount < 200) {
double discount = totalAmount * 0.05;
System.out.printf("Your discount is %.2f, total amount after discount is %.2f%n", discount, totalAmount - discount);
} else if (totalAmount >= 200) {
double discount = totalAmount * 0.10;
System.out.printf("Your discount is %.2f, total amount after discount is %.2f%n", discount, totalAmount - discount);
} else {
System.out.println("No discount applied.");
}
}
}
在这个例子中,我们使用if-else
语句来确定用户是否有资格获得折扣以及折扣的百分比。
案例 8: 使用 switch
语句进行支付方式选择
假设你需要编写一个程序,根据用户选择的支付方式显示相应的信息。
public class PaymentMethodSelector {
public static void main(String[] args) {
String paymentMethod = "credit card";
switch (paymentMethod.toLowerCase()) {
case "cash":
System.out.println("Please pay in cash at the counter.");
break;
case "credit card":
System.out.println("Please swipe your credit card.");
break;
case "debit card":
System.out.println("Please swipe your debit card.");
break;
case "mobile payment":
System.out.println("Please use your mobile wallet to pay.");
break;
default:
System.out.println("Invalid payment method.");
}
}
}
这个例子展示了如何使用switch
语句来处理不同的支付选项。
总结
这些案例展示了如何在实际编程任务中使用Java的选择结构。你可以看到,在不同的场景下,选择合适的选择结构可以使代码更加简洁和高效。希望这些例子能帮助你更好地理解如何在你的项目中运用这些结构。
————————————————
最后我们放松一下眼睛