一、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语句的更多相关文章

  1. 章节四、4-For循环

    一.For循环格式 package introduction5; public class ForLoopDemo { public static void main(String[] args) { ...

  2. JAVA_SE基础——14.循环结构语句

    建议有些基础的同学阅读,0基础可能会有些困难(最好看正文配合基础课本的例子) 所谓循环语句主要就是在满足条件的情况下反复执行某一个操作.Java提供了3种常用的循环语句,分别为for循环语句.whil ...

  3. 九天学会Java,第四天,循环结构

    变量和数据类型,赋值和输出 算术运算 选择结构 循环结构 函数定义,函数调用 变量作用域 栈,程序运行的基石 面向对象 异常处理 语言提供的公用包 这次我们讲Java的循环结构.循环结构在编程中广泛使 ...

  4. while和do-while语句的异同之处

    while型语句: “先判断,后执行”: while 执行流程: 当程序执行到 while 循环时 , 会首先判断小括号里的值 ,如果值 为假 :结束while语句 , 程序继续向下走  为真 :会把 ...

  5. do-while语句及for语句(初学者)

    1.do-while语句的一般形式为: do 语句 while(表达式): 这个循环与while循环的不同在于:它先执行循环中的语句,然后再判断这个表达式是否为真,如果为真则继续循环:如果为假,则中止 ...

  6. c语言for循环等语句详解

    循环结构有: . goto语句和if语句构成循环 .while语句 .do-while语句 .for语句 goto语句 goto语句是一种无条件转移语句, 与Basic中的goto语句相似.goto语 ...

  7. do-while语句和while的区别

    do-while语句是一种后测试循环语句,即只有在循环体中的代码执行之后,才会测试出口条件.其实就是,代码在刚开始执行的时候,都是要先走一遍do循环体内的代码,然后在与while里面的条件进行判断,成 ...

  8. IT兄弟连 Java语法教程 流程控制语句 循环结构语句1

    循环语句可以在满足循环条件的情况下,反复执行某一点代码,这段被重复执行的代码被称为循环体,当反复执行这个循环体时,需要在合适的时候把循环条件该为假,从而结束循环,否则循环将一直执行下去,形成死循环.循 ...

  9. 语句:if语句、do-while语句、while语句、for语句、for-in语句、with语句、label语句、switch语句以及break和continue语句;

    ECMA-262规定了一组语句(也成为流控制语句),语句定义了ECMASript中的主要语法. 语句分类:条件分支语句.条件判断语句和循环语句 代码块:是一对包裹多行代码的花括号,代码块后不可加引号: ...

随机推荐

  1. Java虚拟机知识汇总

    先膜一波布丁大佬hhh

  2. 模板发送java邮件

    Creating email content using a templating library The code in the previous examples explicitly creat ...

  3. 《用OpenResty搭建高性能服务端》笔记

    概要 <用OpenResty搭建高性能服务端>是OpenResty系列课程中的入门课程,主讲人:温铭老师.课程分为10个章节,侧重于OpenResty的基本概念和主要特点的介绍,包括它的指 ...

  4. 函数式编程之-拒绝空引用异常(Option类型)

    众多语言都会设计Option类型,例如Java 8和Swift都设计了Optional类型.其实这种类型早就出现在了函数式语言中,在OCaml和Scala中叫Option,在Haskell中叫Mayb ...

  5. iptables防火墙常用配置介绍

    参考地址 http://www.cnblogs.com/metoy/p/4320813.html http://netfilter.org/ iptables http://man.chinaunix ...

  6. 【原创】关于Git暂存区的理解

    关于Git暂存区的理解      暂存区可以说是Git的三大重要的区域之一,另外两个分别是工作目录和Git仓库,所以说对暂存区的深入理解可以帮助我们理解很多Git命令背后隐藏的工作原理.今天,本文将以 ...

  7. vue_drf之实现短信验证码

    一.需求 1,需求 我们在做网站开发时,登录页面很多情况下是可以用手机号接收短信验证码,然后实现登录的,那我们今天就来做一做这一功能. 伪代码: 进入登录页面,点击短信登录 输入手机号码,点击获取验证 ...

  8. OJ:神秘的数组初始化

    描述 填空,使得程序输出指定结果 #include <iostream> using namespace std; int main() { int * a[] = { // 在此处补充你 ...

  9. [转]virtualBox实现主机和虚拟机相互ping通,配置静态IP地址

    本文转自:https://blog.csdn.net/u010486658/article/details/70871940 背景: 需要在linux上安装软件用来练习,但是需要将安装包发送到linu ...

  10. [转]用C#在windows上操控电脑自带蓝牙(入道指南)

    本文转自:https://blog.csdn.net/YSSJZ960427031/article/details/50990372 前言如题,如果你也想用C#在windows上操控电脑自带蓝牙,但是 ...