Java基础入门:流程控制语句详解
Java基础入门:流程控制语句详解
前言:学会Java变量、数据类型和运算符后,下一步就是掌握「流程控制语句」—— 它相当于Java代码的“导航仪”,用来控制代码的执行顺序。新手刚接触时,常常会困惑“代码为什么不是从上到下依次执行”“怎么实现‘满足条件才执行’‘重复执行某段代码’”。这篇文章全程避开复杂术语,用「生活化场景+可直接运行的代码案例」,把Java基础流程控制(if判断、for循环、while循环)讲透,每个案例都带详细注释,新手跟着敲一遍就能掌握,复制粘贴就能在CSDN发布,助力你稳步打通Java基础关卡!
温馨提示:所有代码均适配JDK8及以上版本,可直接复制到IDEA、Eclipse运行,报错可评论区留言;建议结合前两篇(变量与数据类型、运算符)一起学习,衔接更顺畅,理解更轻松~
一、先搞懂:什么是流程控制语句?
1. 通俗理解
流程控制语句,就是「控制代码执行顺序的命令」。就像我们现实中的“出行导航”:
-
如果前方堵车,就绕路(对应「if判断语句」:满足条件,执行某段代码);
-
重复走同一段路,直到到达目的地(对应「循环语句」:满足条件,重复执行某段代码)。
Java默认的代码执行顺序是「从上到下、依次执行」,但实际开发中,我们需要根据不同条件执行不同代码、重复执行某段代码,这就需要用到流程控制语句。核心分为3类:if判断语句、for循环语句、while循环语句,新手重点掌握这3类即可。
2. 核心分类
无需死记概念,记住3个核心场景即可:
-
判断场景:满足A条件,做X;不满足,做Y → if判断语句;
-
固定次数重复:重复做X事,共做N次 → for循环语句;
-
条件重复:只要满足A条件,就一直做X事 → while循环语句。
二、if判断语句(满足条件才执行,最常用)
if判断语句是最基础的流程控制,核心作用:根据条件的“真/假”,执行不同的代码块。就像“如果明天不下雨,就去公园;否则,就在家看书”。
1. 核心语法(3种形式)
Java中if判断有3种写法,由简单到复杂,重点注意:冒号不能少,代码块要缩进(缩进4个空格或按Tab,用来区分“满足条件执行的代码”)。
(1)基础形式:if(只有满足条件,才执行)
语法:
if (条件) {
满足条件时执行的代码块;
}
// 基础if案例:判断年龄是否成年
public class IfDemo1 {
public static void main(String[] args) {
int age = 18;
// 条件:age >= 18(是否成年),条件为true时,执行大括号里的代码
if (age >= 18) {
System.out.println("你已成年,可以独立出行!");
}
// 条件不满足时,不执行大括号里的代码,直接执行下面的语句
System.out.println("程序执行完毕~");
}
}
运行结果:
你已成年,可以独立出行!
程序执行完毕~
(2)常用形式:if-else(满足条件执行A,不满足执行B)
语法:
if (条件) {
满足条件执行的代码块A;
} else {
不满足条件执行的代码块B;
}
// if-else案例:判断成绩是否及格
public class IfDemo2 {
public static void main(String[] args) {
double score = 75;
// 条件:score >= 60(是否及格)
if (score >= 60) {
System.out.println("成绩及格,继续加油!"); // 条件true,执行这里
} else {
System.out.println("成绩不及格,需要补考!"); // 条件false,执行这里
}
}
}
运行结果:成绩及格,继续加油!
(3)多条件形式:if-else if-else(多个条件,逐一判断)
语法:
if (条件1) {
满足条件1执行的代码;
} else if (条件2) {
满足条件2执行的代码;
} else if (条件3) {
满足条件3执行的代码;
} else {
所有条件都不满足,执行的代码;
}
// if-else if-else案例:判断成绩等级
public class IfDemo3 {
public static void main(String[] args) {
double score = 88;
if (score >= 90) {
System.out.println("优秀");
} else if (score >= 80) { // 不满足上一个条件,才判断这个条件
System.out.println("良好");
} else if (score >= 60) { // 不满足前两个条件,才判断这个条件
System.out.println("及格");
} else {
System.out.println("不及格");
}
}
}
运行结果:良好
2. 新手避坑重点
-
避坑1:if后面的括号()不能少,条件必须是“布尔值”(true/false),比如if (age = 18) 会报错(=是赋值,不是判断,应该用==);
-
避坑2:大括号{}可以省略(当代码块只有1行时),但新手建议不要省略,容易出错(比如后续添加代码,会误判代码块范围);
-
避坑3:else if 不能单独使用,必须跟在if后面;else 必须跟在if或else if后面,不能单独使用;
-
避坑4:多个条件判断时,顺序很重要!比如先判断score >= 60,再判断score >= 80,会导致80分以上也被判定为“及格”(正确顺序:从高到低判断)。
// 避坑案例
public class IfPitfall {
public static void main(String[] args) {
// 避坑1:用==判断,不是=
int age = 18;
// if (age = 18) { // 报错:赋值结果是int,不是boolean
if (age == 18) { // 正确
System.out.println("成年");
}
// 避坑4:条件顺序错误
double score = 85;
// 错误顺序:先判断及格,再判断良好,85分会被判定为“及格”
if (score >= 60) {
System.out.println("及格");
} else if (score >= 80) {
System.out.println("良好");
}
// 正确顺序:从高到低
if (score >= 80) {
System.out.println("良好");
} else if (score >= 60) {
System.out.println("及格");
}
}
}
三、for循环语句(固定次数重复,高频使用)
for循环的核心作用:固定次数重复执行某段代码,比如“打印1-10的数字”“重复计算5次”“遍历数组(后续会学)”,是Java中最常用的循环语句。
1. 核心语法(必记)
语法:
for (初始化表达式; 循环条件; 更新表达式) {
循环体(需要重复执行的代码);
}
通俗解读(新手必看):
-
初始化表达式:循环开始前,执行1次(比如定义循环变量,int i = 1);
-
循环条件:每次循环前判断,条件为true,执行循环体;为false,结束循环;
-
更新表达式:每次循环体执行完毕后,执行1次(比如让循环变量+1,i++)。
类比:就像“每天跑步1次,连续跑7天”—— 初始化(第1天开始)、循环条件(是否小于等于7天)、更新(每天结束,天数+1)。
2. 实操案例(3个高频场景)
// for循环案例1:打印1-5的数字(固定5次)
public class ForDemo1 {
public static void main(String[] args) {
// 初始化:i=1;循环条件:i<=5;更新:i++(每次+1)
for (int i = 1; i <= 5; i++) {
System.out.println("第" + i + "次循环:" + i);
}
System.out.println("循环结束!");
}
}
运行结果:
第1次循环:1
第2次循环:2
第3次循环:3
第4次循环:4
第5次循环:5
循环结束!
// for循环案例2:计算1-10的和(固定10次循环,累加)
public class ForDemo2 {
public static void main(String[] args) {
int sum = 0; // 用于存储累加结果
// 循环1-10的数字
for (int i = 1; i <= 10; i++) {
sum += i; // 等价于 sum = sum + i,每次循环累加i的值
}
System.out.println("1-10的和:" + sum); // 输出:55
}
}
// for循环案例3:循环打印字符串(固定3次)
public class ForDemo3 {
public static void main(String[] args) {
// 循环3次,打印"Java基础真简单"
for (int i = 1; i <= 3; i++) {
System.out.println("第" + i + "遍:Java基础真简单");
}
}
}
3. 新手避坑重点
-
避坑1:for循环的3个表达式之间,用「分号」分隔,不能用逗号(比如int i=1, i<=5; 会报错);
-
避坑2:循环条件不能写错,否则会导致「死循环」(无限重复,程序无法结束),比如for (int i=1; i>0; i++)(i一直+1,永远大于0);
-
避坑3:循环变量(比如i)是在for循环内部定义的,循环结束后,就不能再使用了(如果需要在循环外使用,要在循环前定义);
-
避坑4:循环体如果只有1行代码,大括号{}可以省略,但新手建议不要省略,避免出错。
// 避坑案例(死循环+循环变量使用)
public class ForPitfall {
public static void main(String[] args) {
// 避坑2:死循环(i一直+1,i>0永远成立)
// for (int i=1; i>0; i++) {
// System.out.println(i); // 会一直打印,需关闭编辑器停止
// }
// 避坑3:循环变量在循环外使用
int i; // 循环前定义变量i
for (i = 1; i <= 5; i++) {
System.out.println(i);
}
System.out.println("循环结束,i的值:" + i); // 可以正常使用,输出:6
}
}
四、while循环语句(条件满足就重复,灵活常用)
while循环的核心作用:只要满足循环条件,就一直重复执行循环体,没有固定的循环次数(循环次数由条件决定)。比如“只要肚子饿,就一直吃”“只要输入的密码不正确,就一直提示重新输入”。
1. 核心语法(必记)
语法:
初始化表达式; // 循环开始前,执行1次(可选,但新手建议写)
while (循环条件) {
循环体(需要重复执行的代码);
更新表达式; // 每次循环后,更新条件(避免死循环)
}
对比for循环:while循环更灵活,适合“循环次数不确定”的场景;for循环更适合“循环次数固定”的场景。
2. 实操案例(2个高频场景)
// while循环案例1:打印1-5的数字(和for循环效果一致,循环次数确定)
public class WhileDemo1 {
public static void main(String[] args) {
int i = 1; // 初始化表达式(循环前定义)
// 循环条件:i<=5,满足就执行循环体
while (i <= 5) {
System.out.println(i);
i++; // 更新表达式(i+1,避免死循环)
}
System.out.println("循环结束!");
}
}
// while循环案例2:密码验证(循环次数不确定,条件满足就结束)
public class WhileDemo2 {
public static void main(String[] args) {
// 假设正确密码是123456
int correctPwd = 123456;
int inputPwd = 123; // 输入的密码(模拟错误密码)
// 只要输入的密码不正确,就一直提示重新输入
while (inputPwd != correctPwd) {
System.out.println("密码错误,请重新输入!");
inputPwd = 123456; // 模拟重新输入正确密码(实际开发中由用户输入)
}
System.out.println("密码正确,登录成功!");
}
}
运行结果:
密码错误,请重新输入!
密码正确,登录成功!
3. 新手避坑重点
-
避坑1:while循环一定要有「更新表达式」(比如i++),否则会导致死循环(比如while (i<=5) {System.out.println(i);},i一直是1,永远满足条件);
-
避坑2:循环条件必须是布尔值(true/false),和if判断一样,不能用赋值运算符(=);
-
避坑3:初始化表达式可以省略(比如直接在while括号里写int i=1),但新手建议单独写在while前面,更清晰;
-
避坑4:do-while循环(新手了解即可):先执行1次循环体,再判断条件(即使条件不满足,也会执行1次),语法:do {循环体} while (条件);。
// 避坑案例(死循环+do-while了解)
public class WhilePitfall {
public static void main(String[] args) {
// 避坑1:没有更新表达式,死循环
// int i = 1;
// while (i <= 5) {
// System.out.println(i); // 一直打印1,无法结束
// }
// do-while案例(了解):先执行1次循环体,再判断条件
int j = 6;
do {
System.out.println(j); // 即使j>5,也会执行1次,输出:6
} while (j <= 5);
}
}
五、break和continue
在循环中,我们经常需要“提前结束循环”“跳过当前循环,继续下一次”,这就需要用到break和continue两个关键字,配合for、while循环使用。
1. break:提前终止循环(直接结束整个循环)
作用:无论循环条件是否满足,只要执行到break,就立即终止当前循环,跳出循环体,执行循环后面的代码。
// break案例:打印1-10,遇到5就终止循环
public class BreakDemo {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
if (i == 5) {
break; // 遇到5,终止循环
}
System.out.println(i); // 只打印1-4
}
System.out.println("循环提前结束!");
}
}
运行结果:1 2 3 4 循环提前结束!
2. continue:跳过当前循环,继续下一次
作用:跳过当前循环的剩余代码,直接执行“更新表达式”,进入下一次循环判断(不会终止整个循环)。
// continue案例:打印1-10,跳过5,继续打印后续数字
public class ContinueDemo {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
if (i == 5) {
continue; // 跳过5,直接进入下一次循环
}
System.out.println(i); // 打印1-4、6-10
}
System.out.println("循环结束!");
}
}
3. 新手避坑
break和continue的区别:break是“终止整个循环”,continue是“跳过当前循环,继续下一次”;两者都只能在循环(for、while)或switch(后续会学)中使用。
六、新手常见报错汇总
整理了新手使用流程控制语句时,最常遇到的4种报错,附上原因和解决方案,看完少踩90%的坑!
-
报错1:illegal start of expression(表达式非法)
原因:if/while后面的条件没有加括号(),比如if age >= 18
解决方案:给条件加上括号,比如if (age >= 18)。 -
报错2:incompatible types: int cannot be converted to boolean
原因:循环条件或if条件用了赋值运算符(=),比如while (i = 5)(赋值结果是int,需要boolean)
解决方案:把=改成==,比如while (i == 5)。 -
报错3:infinite loop(无限循环,程序卡死)
原因:循环没有更新表达式,比如while (i <= 5) {System.out.println(i);}(i一直不变)
解决方案:添加更新表达式,比如i++。 -
报错4:unclosed block(未闭合的代码块)
原因:大括号{}没有成对出现,比如if (age >= 18) {System.out.println(“成年”)(少了右大括号)
解决方案:检查大括号,确保成对出现,缩进一致。
七、总结
Java流程控制语句的核心,新手只需掌握以下3点,就能轻松应对入门场景:
-
- if判断:根据条件真/假,执行不同代码,重点记住if、if-else、if-else if-else三种形式,注意条件顺序;
-
- for循环:固定次数重复,核心记好3个表达式(初始化、循环条件、更新),避免死循环;
-
- while循环:条件满足就重复,适合循环次数不确定的场景,必须加更新表达式;
-
- break/continue:break终止整个循环,continue跳过当前循环。
练习建议:结合前两篇的变量、运算符,自己写代码练习——比如用if判断成绩、用for循环计算累加和、用while循环模拟密码验证,多敲多练,就能熟练掌握。
流程控制语句是Java编程的核心基础,后续学习数组、函数、类等内容,都离不开它。如果有报错、有疑问,欢迎在评论区留言,逐一解答!觉得有用的话,点赞收藏不迷路,关注我,后续持续更新Java新手基础教程,陪你从零学会Java~
更多推荐




所有评论(0)