Java 流程控制(五)

时间:2024-11-18 13:55:04

Java 流程控制

在Java 中,我们可以使用 if-else 语句、switch-case 语句和循环语句来控制程序的流程。Java 的这些流程控制语句和 C/C++ 的语句很相似。我们通过一些例子来学习 Java 的流程控制。

if-else 语句

在Java 中,我们可以使用 if-else 语句来判断一个条件是否成立。例如,我们可以判断一个数是否大于 0,如果是,则输出 “大于 0”,否则输出 “小于等于 0”。

package com.learn.processcontrol;

public class IfElse {
    public static void main(String[] args)
    {
        int a = 10;
        int b = 20;

        // if-else
        if(a > b)
        {
            System.out.println("a is greater than b");
        }
        else
        {
            System.out.println("b is greater than a");
        }

        // if 语句
        if(a > b)
        {
            System.out.println("a is greater than b");
        }

        // if-else if-else
        int c = 30;
        if(a > b)
        {
            System.out.println("a is greater than b");
        }
        else if(b > c)
        {
            System.out.println("b is greater than c");
        }
        else
        {
            System.out.println("c is greater than a and b");
        }
        
    }
}

在上面的例子中,我们首先定义了三个变量 a、b 和 c。然后,我们使用 if-else 语句来判断 a 是否大于 b。如果 a 大于 b,则输出 “a is greater than b”,否则输出 “b is greater than a”。

switch-case 语句

在Java 中,我们可以使用 switch-case 语句来判断一个变量的值,并根据不同的值执行不同的代码。例如:

package com.learn.processcontrol;

public class SwitchCase {
    public static void main(String[] args)
    {
        int day = 4;
        switch (day) {
            case 1:
                System.out.println("Monday");
                break;
            case 2:
                System.out.println("Tuesday");
                break;
            case 3:
                System.out.println("Wednesday");
                break;
            case 4:
                System.out.println("Thursday");
                break;
            case 5:
                System.out.println("Friday");
                break;
            case 6:
                System.out.println("Saturday");
                break;
            case 7:
                System.out.println("Sunday");
                break;
            default:
                System.out.println("Invalid day");
        }
    }
}

在 Switch-Case 语句中,我们需要注意以下几点:

  1. Switch-Case 语句中,case 后面的值必须是常量或者 final 变量。
  2. Switch-Case 语句中的变量类型必须是 byte、short、int、char 或枚举类型。
  3. Switch-Case 语句中的变量不能是 float、double 或对象。

循环语句

在Java 中,我们可以使用循环语句来重复执行一段代码。例如,我们可以使用 for 循环来遍历数组中的元素,或者使用 while 循环来判断一个条件是否成立,如果成立,则重复执行一段代码。

for 循环

for 循环可以用来遍历数组中的元素,例如:

package com.learn.processcontrol;

public class For {
    public static void main(String[] args)
    {
        int i;
        for (i = 0; i < 5; i++)
        {
            System.out.println("This is line " + i);
        }

        // for (;;), 其中的三个值都是可选的,例如:
        for (i = 0; i < 5;)
        {
            System.out.println("This is line " + i);
            i++;
        }

        int j = 0;
        for (; j < 5; j++)
        {
            System.out.println("This is line " + j);
        }

        for (;;)    // 无限循环
        {
            System.out.println("This is an infinite loop");
        }
    }
}

for 循环是我们最常用的循环语句之一。因为它的三个参数都是可选的,并且可以省略,带给我们极大的灵活性。

while 循环

while 循环可以用来判断一个条件是否成立,如果成立,则重复执行一段代码。例如:

package com.learn.processcontrol;

public class While {
    public static void main(String[] args)
    {
        int i = 0;
        while (i < 5) {
            System.out.println("i = " + i);
            i++;
        }

        main1();
    }
    public static void main1()
    {
        int i = 0;
        while (true) {
            System.out.println("i = " + i);
            i++;
        }
    }
}

while 循环是我们最常用的循环语句之一。它需要一个条件来判断是否继续执行,如果条件成立,则重复执行一段代码。通常在死循环中使用 while 循环。

do-while 循环

do-while 循环与 while 循环类似,但是,do-while 循环至少会执行一次循环体。它会先执行一次循环体,然后再判断条件。例如:

package com.learn.processcontrol;

public class DoWhile {
    public static void main(String[] args) {

        // 循环体始终至少执行一次
        int i = 0;
        do {
            System.out.println(i);
            i++;
        } while (i < -1);      // i 初始值为 0,由于循环体至少执行一次,输出 0

        // 执行 5 次循环体
        int j = 0;
        do {
            System.out.println("This is line " + j);
            j++;
        } while (j < 5);
        System.out.println("j = " + j);     // j = 5
    }
}

break 和 continue

break 和 continue 是 Java 中的控制语句,它们可以用来跳出循环或跳过当前循环的迭代。

package com.learn.processcontrol;

public class BreakContinue {
    public static void main(String[] args) {
        // break 语句
        for (int i = 0; i < 10; i++) {
            if (i == 5) {   // 输出到5就退出循环
                break;
            }
            System.out.println(i);
        }
        System.out.println("循环结束");

        // continue 语句
        for (int i = 0; i < 10; i++) {
            if (i % 2 == 0) {   // 输出到偶数就提前中止本次循环,进行下一次循环,跳过偶数,只输出奇数
                continue;
            }
            System.out.println(i);
        }
        System.out.println("循环结束");

        // break 和 continue 组合
        int i = 0;
        while (true)
        {
            i++;
            if (i % 2 == 0) {   // 输出到偶数就提前中止本次循环,进行下一次循环,跳过偶数,只输出奇数
                continue;
            }
            if (i == 7) {   // 输出到7就退出循环
                break;
            }
            System.out.println(i);
        }
        System.out.println("循环结束");
    }
}

break 和 continue 的区别与联系:

  1. break 语句可以用来跳出循环,而 continue 语句可以用来跳过当前循环的迭代。
  2. break 语句可以用来跳出 switch 语句,而 continue 语句不能。