章节四、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循环无论条件是否成立都会执行一次,判断成立则继续执行下一轮,否则直接结束。
章节四、3-While循环-DoWhile语句的更多相关文章
- 章节四、4-For循环
一.For循环格式 package introduction5; public class ForLoopDemo { public static void main(String[] args) { ...
- JAVA_SE基础——14.循环结构语句
建议有些基础的同学阅读,0基础可能会有些困难(最好看正文配合基础课本的例子) 所谓循环语句主要就是在满足条件的情况下反复执行某一个操作.Java提供了3种常用的循环语句,分别为for循环语句.whil ...
- 九天学会Java,第四天,循环结构
变量和数据类型,赋值和输出 算术运算 选择结构 循环结构 函数定义,函数调用 变量作用域 栈,程序运行的基石 面向对象 异常处理 语言提供的公用包 这次我们讲Java的循环结构.循环结构在编程中广泛使 ...
- while和do-while语句的异同之处
while型语句: “先判断,后执行”: while 执行流程: 当程序执行到 while 循环时 , 会首先判断小括号里的值 ,如果值 为假 :结束while语句 , 程序继续向下走 为真 :会把 ...
- do-while语句及for语句(初学者)
1.do-while语句的一般形式为: do 语句 while(表达式): 这个循环与while循环的不同在于:它先执行循环中的语句,然后再判断这个表达式是否为真,如果为真则继续循环:如果为假,则中止 ...
- c语言for循环等语句详解
循环结构有: . goto语句和if语句构成循环 .while语句 .do-while语句 .for语句 goto语句 goto语句是一种无条件转移语句, 与Basic中的goto语句相似.goto语 ...
- do-while语句和while的区别
do-while语句是一种后测试循环语句,即只有在循环体中的代码执行之后,才会测试出口条件.其实就是,代码在刚开始执行的时候,都是要先走一遍do循环体内的代码,然后在与while里面的条件进行判断,成 ...
- IT兄弟连 Java语法教程 流程控制语句 循环结构语句1
循环语句可以在满足循环条件的情况下,反复执行某一点代码,这段被重复执行的代码被称为循环体,当反复执行这个循环体时,需要在合适的时候把循环条件该为假,从而结束循环,否则循环将一直执行下去,形成死循环.循 ...
- 语句:if语句、do-while语句、while语句、for语句、for-in语句、with语句、label语句、switch语句以及break和continue语句;
ECMA-262规定了一组语句(也成为流控制语句),语句定义了ECMASript中的主要语法. 语句分类:条件分支语句.条件判断语句和循环语句 代码块:是一对包裹多行代码的花括号,代码块后不可加引号: ...
随机推荐
- jQuery源码——.html()方法原理解析
在将字符串转化为html碎片时,一般会将字符串作为容器的innerHTML属性赋值.但innerHTML有很多局限性,比如我们想转化的字符串中有<script>标签并且包含一个立即执行的函 ...
- [Maven]package com.sun.image.codec.jpeg does not exist
----------------------------------------------------------------- 原创博文,如需转载请通知作者并注明出处! 博主:疲惫的豆豆 链接:h ...
- 【EF6学习笔记】(八)更新关联数据
上一篇链接:EF学习笔记(七):读取关联数据 本篇原文链接:Updating Related Data 本篇主要考虑对于有关联的数据进行新增.删除.更新操作:比如Course .Instructor: ...
- 字符串不相同出现相同HashCode(算法)
转自:https://blog.csdn.net/fly_grass_fish/article/details/81742794 在Java中有HashCode的说法,以前以为HashCode是唯一的 ...
- JS判断滚动条到底部,页面是否有滚动条
要判断页面滚动条是否到底,需要了解三个属性: scrollHeight:获取元素内容高度的度量,包括由于溢出导致的视图中不可见内容,说直白点,算上了滚动条不可见的那部分高度. clientHeight ...
- SpringBoot(11) SpringBoot自定义拦截器
自定义拦截器共两步:第一:注册.第二:定义拦截器. 一.注册 @Configuration 继承WebMvcConfigurationAdapter(SpringBoot2.X之前旧版本) 旧版本代码 ...
- 记录学习新框架yii
最近打算提升自己的解决问题能力,于是打算从学习其他框架下手,让我们先去了解yii框架是如何运作的吧! https://www.yiichina.com/访问yii中文网站 让我们先把框架下载下来 点击 ...
- 华为交换机以 LACP 模式实现链路聚合
LACP 链路聚合模式简介 以太网链路聚合是指将多条以太网物理链路捆绑在一起成为一条逻辑链路,从而实现增加链路带宽的目的.链路聚合分为手工模式和LACP模式. LACP模式需要有链路聚合控制协议LAC ...
- wsgi 协议
wsgi 协议 前言 本来没打算这么早就学习 wsgi 的,因为想要学习python 是如何处理网络请求的绕不开 wsgi,所以只好先学习一下 wsgi.先对 wsgi 有个印象,到了学习 Djang ...
- 第一册:lesson ninety-three。
原文: our new neighbor. Nigel is our new next-door neighbor. He is a pilot. He was in the R.A.F. He w ...