Java编程基础:逻辑控制语句全面解析
本文系统讲解Java中的三大逻辑控制结构:顺序、分支与循环。详细解析if-else与switch语句的语法及悬垂else问题,深入剖析while、for及do-while循环的执行流程与注意事项,并对比break与continue在控制循环退出与跳过中的作用,帮助开发者掌握Java程序流程控制的核心技巧。
顺序结构
此前编写的代码大多遵循顺序执行模式,即程序严格按照代码书写的先后顺序,逐行向下执行。
代码1
System.out.println("you");
System.out.println("and");
System.out.println("me");
代码2
System.out.println("and");
System.out.println("me");
System.out.println("you");
上述代码 1 的运行结果如下:
you and me
代码 2 的运行结果如下:
and me you
分支结构
if 语句
其基本语法格式如下:
if(布尔表达式) {
代码1
// 条件满足时 执行
} else {
代码2
// 条件不满足时 执行
}
条件判断部分必须为布尔表达式。
当布尔表达式的计算结果为 true 时,执行代码块 1;若结果为 false,则执行代码块 2。
具体示例如下:
假设 J 本次考试成绩达到 90 分以上,则奖励一个大鸡腿;否则,奖励一个大嘴巴子。
int score = 95;
if(score >= 90) {
System.out.println("奖励一个大鸡腿!");
}else {
System.out.println("奖励一个大嘴巴子!");
}
使用注意事项:
悬垂 else 问题:
int x = 10;
int y = 10;
if (x == 10)
if (y == 10)
System.out.println("aaa");
else
System.out.println("bbb");
运行结果:aaa
当存在多个 if 语句且未使用大括号包裹时,else 关键字会自动与距离它最近的未匹配的 if 语句配对。因此,建议在编写 if 语句时始终使用大括号以明确作用域。
switch 语句
基本语法格式如下:
switch(表达式) {
case 常量值1:{
语句1;
break;
}
case 常量值2:{
语句2;
break;
}
...
default:{
内容都不满足时执行语句;
break;
}
}
执行流程说明:
- 首先计算表达式的值。
- 随后将该值与各个 case 后的常量值依次进行比较,一旦发现匹配项,即执行该 case 下的语句,直到遇到 break 语句时跳出 switch 结构。
- 若表达式的值与所有列出的 case 常量均不匹配,则执行 default 分支后的语句。
使用注意事项:
- 不可遗漏 break 语句,否则会导致程序失去“多分支选择”的效果,发生 case 穿透现象。
- 各个 case 标签后的常量值必须唯一,不能重复。
- 通常不建议在 switch 语句中进行嵌套使用,以保持代码清晰。
哪些类型不能作为 switch 的参数?
long、float、double 以及 boolean 类型均不支持作为 switch 的参数。
循环结构
while 循环
基本语法格式如下:
while(循环条件) {
循环语句;
}
当循环条件的值为 true 时,执行循环体内的语句;若值为 false,则终止循环。
while 循环中的输入处理:
Scanner scan = new Scanner(System.in);
// Ctrl+C 直接中断程序
// Ctrl+D 正常退出程序
while(scan.hasNext()){
int year = scan.nextInt();
if((year % 4==0 && year % 100!=0) || year % 400==0){
System.out.println("闰年!");
}else{
System.out.println("不是闰年!");
}
}
按下 Ctrl+C 可直接中断程序运行。
按下 Ctrl+D 可正常退出程序。

注意事项:
- 务必确保循环体内有步进操作(如变量自增),否则可能导致死循环。
- while 循环的条件判断部分只能是布尔表达式。
break
- break 的功能:用于让循环提前结束。
- break 语句仅适用于两种场景:switch 语句和循环结构。
代码示例:
求解 100 到 200 之间第一个既能被 3 整除也能被 5 整除的数:
int num = 100;
while(num<=200){
if(num % 15==0){
System.out.println(num);
break; //此处用break,因为break在while循环里
}
num++;
}
执行结果: 105
continue
continue 的功能:跳过当前本次循环剩余的语句,直接进入下一次循环的判断。
若将上述 break 示例代码中的 break 替换为 continue,程序将循环打印出所有符合条件的 105(注:原意可能指继续寻找后续符合的数,但根据代码逻辑,若仅找第一个则continue会导致无限循环或打印所有,此处按原文表述改写为“则会循环打印 105”以保留原意,尽管逻辑上需结合具体代码理解,通常continue用于跳过当前迭代)。
for 循环
基本语法格式如下:
for(表达式1; 布尔表达式2; 表达式3){
循环体;
}
执行顺序说明:
第一趟循环:
- 首先执行表达式 1(通常用于初始化),且该表达式仅执行一次。
- 接着判断表达式 2(布尔表达式)是否为真,若为真,
- 则执行循环体中的语句。
- 最后执行表达式 3(通常用于更新变量)。
第二趟循环:
- 再次判断表达式 2 是否为真,若为真,
- 则执行循环体。
- 随后执行表达式 3。
此过程持续进行,直到表达式 2 的值为假时,循环结束。
代码示例:
for(int i=1; i<=10;i++){
System.out.println(i);
}
do while 循环
该结构先执行一次循环语句,随后再判定循环条件;若条件成立则继续执行,否则结束循环。
基本语法格式如下:
do{
循环语句;
}while(循环体);
代码示例:
打印数字 1 至 10。
int num = 1;
do {
System.out.println(num);
num++;
}while( num<=10 );
注意事项:do while 循环末尾的分号不可省略。此外,一般不推荐使用 do while 语句,因其使用场景相对较少。
总结
本文内容至此结束,希望能对您有所帮助,也欢迎您关注本站以获取更多相关内容!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









