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点,就能轻松应对入门场景:

    1. if判断:根据条件真/假,执行不同代码,重点记住if、if-else、if-else if-else三种形式,注意条件顺序;
    1. for循环:固定次数重复,核心记好3个表达式(初始化、循环条件、更新),避免死循环;
    1. while循环:条件满足就重复,适合循环次数不确定的场景,必须加更新表达式;
    1. break/continue:break终止整个循环,continue跳过当前循环。

练习建议:结合前两篇的变量、运算符,自己写代码练习——比如用if判断成绩、用for循环计算累加和、用while循环模拟密码验证,多敲多练,就能熟练掌握。

流程控制语句是Java编程的核心基础,后续学习数组、函数、类等内容,都离不开它。如果有报错、有疑问,欢迎在评论区留言,逐一解答!觉得有用的话,点赞收藏不迷路,关注我,后续持续更新Java新手基础教程,陪你从零学会Java~

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐