循环

44 阅读2分钟

switch的用法

public class Test1 {
    public static void main(String[] args) {
        int age = 50;
        switch(age) {
            case 10:
                System.out.println("数字是10");
                break;
            case 20:
                System.out.println("数字是20");
                break;
            default:
                System.out.println("默认其他数字");
                break;
        }
    }
}

while循环

  1. 在开始循环之前,会计算一次布尔表达式,若为真,则执行循环体;而对于后来的每一次循环,都会开始前重新计算一次;
  2. 语句中应该含有让循环趋于结束的语句,否则会出现无限循环 - 死循环

语法结构:

while(布尔表达式) {
   循环体;
}

计算1-100的累加值

public class Test1 {
    public static void main(String[] args) {
        int i = 1;
        int sum = 0;

        while(i <= 100) {
            sum += i;
            i++;
        }

        System.out.println("sum是" + sum);
    }
}

for循环

语法结构:

for(初始表达式;布尔表达式;迭代因子) {
  循环体
}

- 先执行初始表达式,循环变量的初始值
- 条件判断部分:布尔表达式
- 迭代因子:控制循环变量的增减

for在执行条件判断后,先执行循环体,再执行迭代因子;
public class Test1 {
    public static void main(String[] args) {
        int sum  = 0;
        for (int i = 1; i <= 100; i++) {
            sum += i;
        }
        System.out.println(sum);
    }
}

嵌套循环

public class Test1 {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            for (int j = 1; j <= 5; j++) {
                System.out.println(i + " ");
            }

            System.out.println();
        }
    }
}

image.png

break 语句和 continue语句

  • break用于强行退出整个循环
public class Test1 {
    public static void main(String[] args) {
        int total = 0;
        System.out.println("游戏开始");

        while(true) {
            total++;
            int i = (int)(Math.random() * 100);
            if (i == 8) {
                break; // 结束整个循环
            }
        }

        System.out.println("游戏结束,用了" + "total" + total + "次");
    }
}
  • continue 用在循环体语句中,用于终止本次循环,即跳过循环体中尚未执行的语句,接着执行下一次是否执行循环的判定。
public class Test1 {
    public static void main(String[] args) {
        // 把100-150不被3整除的数字输出,并且每行输出5个;
        int count = 0;
        for (int i = 100; i <= 150; i++) {
            if (i % 3 == 0) {
                continue;
            }

            System.out.println(i + "、");
            count++;
            if (count % 5 == 0) {
                System.out.println();
            }
        }
    }
}

带标签的continue的语句

跳出外部循环

public class Test1 {
    public static void main(String[] args) {
        // 控制嵌套循环跳转,(打印101-150之间的质数: 可以被1和他本身整除的整数)
        outer: for (int i = 101; i < 150; i++) {
           for (int j = 2; j < i / 2; j++) {
                if (i % j == 0) {
                    continue outer;
                }
           }
           System.out.println(i + ' ');
        }
    }
}

image.png