什么是条件语句?
在日常生活中,我们经常需要根据不同的情况做不同的决定,比如: “如果今天下雨,我就带伞,否则我就不带伞。” 在编程中,条件语句就是用来帮助程序“做决定”的工具。通过条件语句,程序可以根据某个条件是否成立,选择执行不同的代码。
Java中有两种常用的条件语句:if-else 和 switch-case。它们就像程序中的“选择题”,帮助程序根据条件选择正确的分支执行。
if-else:二选一的“判断题”
if-else语句就像生活中的“判断题”,根据一个条件是否成立,选择执行哪一段代码。
基本语法:
if (条件) {
// 当条件为真(true)时执行的代码
} else {
// 当条件为假(false)时执行的代码
}
举个例子:
想象一下你正在写一个天气应用,程序要根据是否下雨决定是否提醒用户带伞:
boolean isRaining = true;
if (isRaining) {
System.out.println("今天下雨,记得带伞!");
} else {
System.out.println("天气晴朗,不用带伞。");
}
在这个例子中:
if (isRaining)意思是“如果正在下雨”,那么执行System.out.println("今天下雨,记得带伞!");。- 如果条件不成立(也就是
isRaining为false),就执行else里面的代码,提示不用带伞。
多个条件的情况:
有时候我们可能会有多个条件要判断,这时可以使用else if:
int temperature = 30;
if (temperature > 35) {
System.out.println("天气很热,注意防暑!");
} else if (temperature >= 20 && temperature <= 35) {
System.out.println("天气不错,出去走走吧!");
} else {
System.out.println("天气有点凉,记得加衣服。");
}
在这个例子里:
- 如果温度大于35度,提示“天气很热”。
- 如果温度在20到35度之间,提示“天气不错”。
- 如果温度低于20度,则提示“天气凉”。
if-else的优势在于它适合处理多个条件,灵活性强。
switch-case:多选一的“选择题”
switch-case语句就像一张“选择题”,根据一个变量的值,执行对应的代码。它非常适合在你有明确的、多个选项时使用。
基本语法:
switch (变量) {
case 值1:
// 当变量等于值1时执行的代码
break;
case 值2:
// 当变量等于值2时执行的代码
break;
// 可以有多个case
default:
// 当没有匹配的值时执行的代码
}
举个例子:
假设你正在写一个自动贩卖机程序,用户输入选择的饮料编号,程序要根据编号输出对应的饮料:
int choice = 2;
switch (choice) {
case 1:
System.out.println("你选择了可乐!");
break;
case 2:
System.out.println("你选择了果汁!");
break;
case 3:
System.out.println("你选择了矿泉水!");
break;
default:
System.out.println("无效选择,请重新输入!");
}
在这个例子里:
- 如果用户输入的是
1,程序输出“你选择了可乐!”。 - 如果输入的是
2,输出“你选择了果汁!”。 - 如果输入的是其他数字,比如
5,程序会执行default部分,提示“无效选择”。
注意:
break语句是用来告诉程序“到这里结束,不用继续执行后面的代码了”。如果你忘记写break,程序会继续执行下一个case的代码,导致结果不正确。default相当于else,当没有匹配的case时执行它的代码。
if-else 和 switch-case 的区别:
-
使用场景不同:
if-else适合处理范围或逻辑判断,比如判断年龄是否大于18,分数是否及格。switch-case适合处理多个明确的选项,比如根据颜色、饮料编号做出选择。
-
可读性:
- 如果你有明确的多个选项(比如数字、字符等),
switch-case的代码会更简洁、清晰。 - 如果你的条件比较复杂或者包含范围,
if-else会更加灵活。
- 如果你有明确的多个选项(比如数字、字符等),
小结:
if-else:就像二选一的判断题,适合根据条件是否成立来做判断,处理多种复杂情况时很方便。switch-case:就像多选一的选择题,适合处理多个固定的选项,代码更简洁。
通过掌握if-else和switch-case,你就能让程序根据不同的条件做出相应的决策,像一个聪明的助手一样执行不同的任务!