章节四、3-While循环-DoWhile语句
2018-08-23 14:02
120 查看
一、while死循环
结果:
一直循环打印“10”
注意:这里仅仅是演示死循环的两种方式,如果在此段代码中把方式一写在方式二后面,在eclipse中未运行编译前就会报错,因为方式二中条件永远为true,无法像方式一中一样能够改变条件变量的值,所以如果按照如下方式放置代码,eclipse会提示“Unreachable code”(代码不可达);
二、关键字:
break:如果满足某一个条件,就结束整个while循环,不再执行该循环。
结果为:
continue:如果满足某一个条件,只结束本次满足该条件的循环,继续下一轮的循环。
结果:
注意:使用continue后,图片标识处一直处于红色状态(红色表正在执行命令,灰色标识命令执行完成),后面的打印语句“循环外。。。。”也一直没有打印,说明程序一直处于执行中无法真正结束,出现这种情况主要是因为当程序循环到“i=17”时,跳过了while后面打印“i”的命令,重新进入了下一轮循环,然后判断“i<20”是否成立,成立后继续比较“i==17”,该条件成立后又继续跳过打印“i”的命令,继续进入了下一轮的循环当中,然后一直处于判断“i==17”的循环中,这样导致while循环外的打印语句“循环外。。。”也一直无法执行,最终导致了程序一直处于运行中无法结束,相当与已经进入了死循环。
如果我们把打印“i”的语句放到if判断语句前面则不会出现这种情况:
结果为:
可能有些人会疑问,为什么这里打印了17?
当循环到16时,打印了16,然后i++将i变成了17,变为17后进行if判断,条件成立,continue跳出本次循环,继续进入下一次循环,然后判断i是否小于20(i这个时候值还未自增,仍为17),成立后将i打印带控制台(显示命令执行结果的地方),然后在执行i++自增为18,所以这里会打印17这个值。
三、do-while:与while不同的地方在于判断条件前会先执行一次循环(while先检查条件后执行语句)。
打印的结果为:
现在我们将“i”的值改为20:
打印结果为:
由此可见,do-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循环无论条件是否成立都会执行一次,判断成立则继续执行下一轮,否则直接结束。
相关文章推荐
- JAVA输出九九乘法表,用for,dowhile,while循环语句输出
- Java循环语句之 while · doWhile · for · 多重循环
- JavaSE (七)循环控制语句:while、do....while、for,break和continue用法
- 编写Java程序,使用while循环语句计算1+1/2!+1/3!···1/20!之和。
- 分支语句(if,switch case)、循环(for,while,do while)、continue、break、随机数
- MySQL和MSSQl使用While 语句循环生成测试数据
- C语言之while循环语句和do while循环语句、for循环语句、循环嵌套
- 用while循环语句计算1!+2!+……20!之和
- java的选择结构switch和循环结构for while do while以及流程控制语句break continue return
- Shell脚本中循环语句for,while,until用法
- sqlserver 中while循环语句的书写格式
- 2.4.3认识循环结构-while语句
- bash脚本之case语句应用,while、until和select循环应用及其示例
- Asp.net的条件和循环语句示例(If,Swich,While,For,Goto,foreach,Lock可直接运行)
- linux shell 流程控制(条件if,循环【for,while】,选择【case】语句实例 --转载
- 基于proteus的51单片机仿真实例三十二、C语言的do-while循环语句
- 第九周项目1-利用循环求和(while语句)
- Python--While循环语句
- java,循环语句,while语句
- 8.从零开始学习C语言--while循环语句