Java——循环结构

什么是循环结构:

  • 循环是程序设计语言中反复执行某写代码的一种计算机处理过程,是一组相同或相似语句被有规律的重复执行。说白了就是反复执行一段相同或相似的代码

  • 循环三要素:

    • 循环变量的初始化

    • 循环的条件(以循环变量为基础)

    • 循环变量的改变(向着循环的结束变)

while语句的执行逻辑:

  • 计算boolean表达式的值

  • 当值为true则执行语句块,语句执行完以后再次判断boolean值,如果值还是为true则继续执行,如此循环,直到boolean的值为false时退出while循环。

while语句案例演示:

public static void main(String[] args) {
    int num = 1; 
    while (num <= 9) {
        System.out.println(num + "*9=" + num * 9);
        num++; 
    }
    System.out.println("over");
}
说明:先判断条件,在执行,条件不满足的时候,跳出循环。
  • 注:一般情况下,循环操作中会存在循环的条件不满足的可能性,否则将成为死循环

while语句使用break案例演示:

public static void main(String[] args) {
    int i = 0;
    while (i < 10) {
        if (i == 5) {
            break;
        }
        System.err.println("i的值为:" + i);
        i++;
    }
}
说明:
    i的初始值为0,代码进入while块中判断,满足条件,进入if判断,条件不满足 i++,
    当i通过自加到5的时候,满足if块的条件,用break跳出循环。

do-while语句:

  • 先计算boolean表达式,如果为true,再次执行语句块,如此循环,直到为false为止。

do-while语句案例演示:

public static void main(String[] args) {
    // 模拟用户登录
    Scanner scan = new Scanner(System.in);
    int pwd = 123; // 初始密码
    int i = 0;
    System.err.println("初始密码:" + pwd);
    int guess; // 用户输入的密码
    do {
        System.out.println("请输入密码!");
        System.out.println("输入密码共有3次机会!"); // 告诉用户,输出错误密码的次数
        guess = scan.nextInt();
        if (i == 2) { // 计算错误密码次数
            break; // 跳出循环
        }
        i++;
        System.err.println("密码输入错误次数为:" + i);
    } while (guess != pwd);
    if (guess == pwd) {
        System.out.println("密码正确");
    } else {
        System.out.println("密码错误");
    }
}
说明:
    先执行do语句块里的代码,在判断条件,条件为true时,再次执行语句块,等条件为false时,跳出循环。
  • while和do-while的区别

    • while:先判断后执行,有可能一次都不执行

    • do-while:先执行后判断,至少会执行一次

for语句的执行逻辑:

for (int j = 0; j < args.length; j++) {
    String string = args[j];
}
说明:
for (表达式1;表达式2;表达式3) {
    语句块(循环体)
}

for 语句案例演示:

for (int i = 0; i < 3; i++) {
    System.err.println("学习Java");
}
System.err.println("条件不满足,程序结束");
说明:
    程序第一轮执行顺序:i=0,0<3(条件满足),i++ 输出循环体语句
    程序第二轮执行顺序:i=1,1<3(条件满足),i++ 输出循环体语句
    程序第三轮执行顺序:i=2,2<3(条件满足),i++ 输出循环体语句
    程序第四轮执行顺序:i=3,3<3(条件不满足)程序结束

死循环案例演示:

for (;;) {
    System.err.println("学习Java");
}
说明:
    当所有表达式为空时,进入死循环状态

  • break可用于循环语句或者switch语句中,可以使程序终止循环而执行循环后面的语句,常常与条件语句一起使用。

  • continue 只能用于循环中,作用为跳过循环体中剩余语句,而执行下一次循环

for循环中使用continue案例演示:

public static void main(String[] args) {
    int num = 0;
    for (int i = 1; i <= 100; i++) {
        if (i % 10 == 3) {
            continue;
        }
        num += i;
    }
}
说明:
    当if条件满足时continue跳过循环体中剩余的语句
    程序执行:
        num = 0
        i = 1 num = 0 + i(1)
        i = 2 num = 1 + i(2)
        i = 3 满足条件,所以跳出剩余循环体中的语句。
        以此类推,当i 的值为101的时循环结束。

循环问题:

  • 需要多次重复执行一个或多个任务的问题考虑使用循环来解决,一般情况for循环使用最多。

  • 循环问题定义——当循环:

    • 如果业务转换为当这样时,优先选择while语句来实现。
  • 循环问题定义——直到循环:

    • 如果业务转换为直到这样时,优先选择do-while语句来实现。
  • 循环问题定义——固定次数循环:

    • 如果业务中获取一个确切的循环次数,考虑for循环。

你可能感兴趣的:(Java——循环结构)