您的位置:首页 > 其它

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

2018-08-23 14:02 120 查看
一、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循环无论条件是否成立都会执行一次,判断成立则继续执行下一轮,否则直接结束。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: