章节四、3-While循环-DoWhile语句

一、while死循环

package introduction5;

public class WhileDemo {

    public static void main(String[] args) {
    int i = 10;
    //“死循环”
    //1、永远满足该条件
    while(i<21) {
        System.out.println(i);
    }
  //如果运行此程序,命令会一直执行方式一并循环,永远无法运行下面的代码
//2、直接将结果写在条件中 while(true) { System.out.println(i); } } }

结果:

一直循环打印“10”

注意:这里仅仅是演示死循环的两种方式,如果在此段代码中把方式一写在方式二后面,在eclipse中未运行编译前就会报错,因为方式二中条件永远为true,无法像方式一中一样能够改变条件变量的值,所以如果按照如下方式放置代码,eclipse会提示“Unreachable code”(代码不可达);

二、关键字:

break:如果满足某一个条件,就结束整个while循环,不再执行该循环。

package introduction5;

public class WhileDemo {

    public static void main(String[] args) {
    int i = 10;
    while(i<20) {
        if(i==17) {
            break;
        }
        System.out.println(i);
    /*i++表示下一次循环时加+,效果等同于“i+1”,
    *打印时第一次结果为“10”,
    *第二次为“11”,
    *直到打印出“20”后循环停止。
    */
        i++;
    }
    System.out.println("循环外....");
    }
}

结果为:

continue:如果满足某一个条件,只结束本次满足该条件的循环,继续下一轮的循环。

package introduction5;

public class WhileDemo {

    public static void main(String[] args) {
    int i = 10;
    while(i<20) {
        if(i==17) {
            continue;
        }
        System.out.println(i);
    /*i++表示下一次循环时加+,效果等同于“i+1”,
    *打印时第一次结果为“10”,
    *第二次为“11”,
    *直到打印出“20”后循环停止。
    */
        i++;
    }
    System.out.println("循环外....");
    }
}

结果:

注意:使用continue后,图片标识处一直处于红色状态(红色表正在执行命令,灰色标识命令执行完成),后面的打印语句“循环外。。。。”也一直没有打印,说明程序一直处于执行中无法真正结束,出现这种情况主要是因为当程序循环到“i=17”时,跳过了while后面打印“i”的命令,重新进入了下一轮循环,然后判断“i<20”是否成立,成立后继续比较“i==17”,该条件成立后又继续跳过打印“i”的命令,继续进入了下一轮的循环当中,然后一直处于判断“i==17”的循环中,这样导致while循环外的打印语句“循环外。。。”也一直无法执行,最终导致了程序一直处于运行中无法结束,相当与已经进入了死循环。

如果我们把打印“i”的语句放到if判断语句前面则不会出现这种情况:

package introduction5;

public class WhileDemo {

    public static void main(String[] args) {
    int i = 10;
    while(i<20) {
        System.out.println(i);
        /*i++表示下一次循环时加+,效果等同于“i+1”,
        *打印时第一次结果为“10”,
        *第二次为“11”,
        *直到打印出“20”后循环停止。
        */
            i++;
        if(i==17) {
            continue;
        }
    }
    System.out.println("循环外....");
    }
}

结果为:

可能有些人会疑问,为什么这里打印了17?

当循环到16时,打印了16,然后i++将i变成了17,变为17后进行if判断,条件成立,continue跳出本次循环,继续进入下一次循环,然后判断i是否小于20(i这个时候值还未自增,仍为17),成立后将i打印带控制台(显示命令执行结果的地方),然后在执行i++自增为18,所以这里会打印17这个值。

三、do-while:与while不同的地方在于判断条件前会先执行一次循环(while先检查条件后执行语句)。

package introduction5;

public class WhileDemo {

    public static void main(String[] args) {
    int i = 10;
    do {
        System.out.println(i);
        i++;
    }while(i<20);
    }
}

打印的结果为:

现在我们将“i”的值改为20:

打印结果为:

由此可见,do-while循环无论条件是否成立都会执行一次,判断成立则继续执行下一轮,否则直接结束。

原文地址:https://www.cnblogs.com/luohuasheng/p/9523366.html