while语句什么时候结束循环

while语句什么时候结束循环

无论你使用的是 while循环、do/while循环,还是无限循环,了解循环的工作原理对 Java 编程至关重要。

只要某些预定的条件为真,一个 while循环就会执行一组任务。这被认为是一个控制结构,可以指导程序的流程。它是一种你可以通过定义一个条件来告诉你的代码要做什么的方法,它可以测试它,并根据它发现的情况采取行动。Java 中的两种while循环是whiledo/while

Java while 循环

while循环的目的是对数据进行迭代,直到某个条件得到满足。要创建一个while循环,你需要提供一个可以测试的条件,然后是你想要运行的代码。Java 有几个内置的测试函数,其中最简单的是数学运算符(, >,==, 等等):

package com.opensource.example; public class Example { public static void main(String args) { int count = 0; while (count

在这个简单的例子中,条件是变量 count小于 5。因为count被实例化为 0,然后在while循环的代码中增加 1,所以程序总共迭代了 5 次:

$ java ./while.java 0 1 2 3 4

在它进行第六次迭代之前,条件不再是真的,所以循环结束。

while循环的条件语句是至关重要的。弄错了可能意味着你的循环永远不会执行。例如,假设你把count == 5作为条件:

while (count == 5) { System.out.printf("%d ", count); count++;

当你运行这段代码时,它的构建和运行都很成功,但什么也没有发生:

$ java ./while.java $

循环被跳过了,因为 count被设置为 0,而且在第一次遇到 while 循环的时候,它还是 0。循环从未开始,count也从未被递增。

与此相反的是,当一个条件开始为真,并且永远不会为假时,这将导致一个无限循环。

Java do while 循环

while循环相似,do/while循环在每次迭代结束时测试条件,而不是在开始时测试条件。有了这个循环,循环中的代码至少运行一次,因为没有进入的入口,只有退出的出口:

package com.opensource.example; public class Example { public static void main(String args) { int count = 9; do { System.out.printf("%d ", count); count++; } while(count == 5); } }

在这个示例代码中,count被设置为 9。循环重复的条件是count等于 5,但是 9 不等于 5。不过,这个检查要到第一次迭代结束时才进行:

$ java ./do.java 9

Java 无限循环

无限循环,正如它的名字所示,永远不会结束。有时它们是被错误地创建的,但无限循环确实有一个有效的场景。有时你想让一个进程无限地继续下去(在功能上是无限的,因为你不能保证你需要它什么时候停止),因此你可能会把你的条件设置为不可能满足的东西。

假设你写了一个应用程序,在僵尸天启期间计算留在你附近的僵尸的数量。为了模拟需要多少个循环才能达到 0 个僵尸的不确定性,我的演示代码从操作系统中检索了一个时间戳,并将计数器(c)的值设置为从该时间戳得出的某个数字。因为这是一个简单的例子,你不会真的想陷入一个无限循环,这段代码倒数到 0,并使用break函数来强制结束循环:

package com.opensource.example; public class Example { public static void main(String args) { long myTime = System.currentTimeMillis; int c; if ( myTime%2 == 0 ) { c = 128; } else { c = 1024; } while(true) { System.out.printf("%d Zombies\n", c); // break for convenience if ( c

你可能要运行几次才能触发不同的僵尸总数,但有时你的程序会迭代 128 次,有时会迭代 1024 次:

$ java ./zcount.java 1024 Zombies 1023 Zombies [...] 0 Zombies

你能说出为什么循环的终点是 0 而不是 -1 吗?

Java 循环

循环使你能够控制程序的执行流程。迭代在编程中很常见,无论你使用 while循环、do/while循环还是无限循环,了解循环的工作原理都是至关重要的。

via: https://opensource.com/article/23/1/java-loops

作者:Seth Kenlon选题:lkxed译者:geekpi校对:wxy

本文由 LCTT原创编译,Linux中国荣誉推出

本文【while语句什么时候结束循环】由作者: Web服务 提供,本站不拥有所有权,只提供储存服务,如有侵权,联系删除!
本文链接:https://www.cuoshuo.com/blog/4183.html

(0)
上一篇 2023-03-10 08:25:39
下一篇 2023-03-10 08:35:01

相关推荐

  • mdi窗体如何调用子窗体函数

    MDI多窗体组件,主要用于设计多文档界面应用程序,该组件具备有多种窗体展示风格,其实现了在父窗体中内嵌多种子窗体的功能,使用MDI组件需要在UI界面中增加mdiArea控件容器,我们所有的窗体创建与操作都在这个容器内进行,如下我们将具体介绍该组件的常用使用技巧。 MDI窗体控件类似于画布,该控件只具备展示窗体的功能,无法实现生成窗体,所以我们需要在项目中手动…

    2023-03-09
    800
  • 电路图常用符号搜索软件,电工开关符号大全图解

    1、在电工电路中还常常绘制有具有专门含义的图形符号,认识这些符号对于快速和准确理解电路图十分必要。 在识读电工电路的过程中,还常常会遇到各种各样的功能部件的图形符号,用于标识其所代表的物理部件,例如各种电声器件、灯控或电控开关、信号器件、电动机、普通变压器等。学习识图时需要首先认识这些功能部件的图形符号,否则电路将无法理解。 2、按钮开关是用于控制仪器、仪表…

    2023-03-16
    000
  • sql索引原理_sql索引有什么用

    表的存储结构 表 -> 分区 -> 堆或B+树 -> 页(数据页、索引页、LOB页,溢出页) 表默认只有一个分区(sql server的分区表技术,可以将表进行水平拆分,这样就会产生多个分区)。 分区里面就是存储的数据,有两种存储形式:堆或B+树,具体结构下面细说。、 页 页是数据存储的最小单位。 页类型分为:数据页、索引页、Log_mix…

    2023-03-08
    700
  • 火狐flash播放器卸载不了(浏览器内置flash卸载)

    2021年刚开始,但有些产品的生命却走向终点,比如,Flash。 从2020年12月31日起,Adobe公司就不再为Flash Player(Flash播放器)提供支持,这意味着今后官方不会有任何更新或安全补丁,Adobe还建议用户尽快卸载Flash播放器。 不同于普通的视频播放器或更流行的视频应用,Flash播放器是很多浏览器内置的组件,早期的视频网站、目…

    2023-03-13
    500
  • linux数据恢复实验_linux数据恢复命令

    一、linux误删除数据的场景 在实际的工作中,朋友们可能会将linux服务器上的文件不小心误删除掉了。而且越是资历老的工程师越容易犯这样的错误,敲代码的速度也是够快,啪啪rm -rf一个回车,然后就是打脸时刻 。新人操作文件时往往战战兢兢、反复确认,反而不容易出错。如果你也是一个有多年工作经验的工程师,也给自己提个醒:淹死的都是会游泳的。我们需要区分两种场…

    2023-03-12
    200
  • sql约束取值范围0-100

    本系统为@牛旦教育IT课堂在微头条上的内容, 为便于查阅,特辑录于此,都是常用SQL基本用法。。 前两篇连接: (一):SQL点滴(查询篇):数据库基础查询案例实战 (二):SQL点滴(排序篇):数据常规排序查询实战示例 (三):常用SQL系列之(三):记录叠加、匹配、外连接及笛卡尔等 (四):常用SQL系列之:Null值、插入方式、默认值及复制等 (五):…

    2023-03-10
    300
  • bin文件用什么软件打开,bin文件怎么打开

    虽然我们平时标准的Windows格式都是来来回回那几种通用格式,但是你收到的文件却不一定是,它往往变成你不认识的格式,比如说文件类型格式显示bin。为什么会产生这样的问题呢? 1、 下载并运行“UltraISO”软件-文件-打开 2、 选择“xx.bin”文件,点击“打开” 3、 如果能正常打开,则表示这个文件就是光盘镜像文件,软件的右侧会出现bin文件里面…

    2023-03-18
    000
  • wireshark抓包分析tcp数据包

    前言 当你看到这篇文章时,你只能看到已经渲染好的文字和图像,而网络数据的交互对我们来说,却是看不见的,所以学习计算机网络原理的时候就会觉得非常的抽象,这一度让我苦恼。 而且网络数据交换真实的模样,到底是不是真的如大多数文章所描绘的一样? 这些疑问让我早就想干这件事了。 所以不如就去看看离我们最近的协议 TCP 到底长什么样? 为了能“看见”TCP,我们需要借…

    2023-03-11
    200
  • cad常用命令大全及使用方法,CAD基础命令

    这个练习题用CAD直线、圆、圆角、修剪等多个命令操作完成,主要是要知道多个CAD命令的结合使用过程,那么所用的操作软件为CAD梦想画图 目标图形 绘制过程: 1.使用CAD直线命令:L绘制一条水平直线与一条垂直直线,并且将线型与颜色修改为辅助线样式。 2.使用CAD偏移命令:OFFSET将垂直线段分别左右偏移30个单位与水平线段相交与A、B两点。 3.使用C…

    2023-03-15
    000
  • 弗洛伊德算法是谁提出的,弗洛伊德最著名的理论

    算法对于我们的世界是多么重要。自计算机科学诞生之日起,关于算法的研究就一直是一个核心话题。 现代计算机科学中充满了各种各样的算法,许多图灵奖得主也正是因提出的各种经典算法而闻名于世。例如: 提出单源最短路径算法的迪可斯特朗(Edsger Dijkstra,1972年图灵奖得主) 提出字符串匹配算法的高德纳(Donald Knuth,1974年图灵奖得主) 提…

    2023-03-13
    400

发表回复

登录后才能评论
返回顶部
错说博客上线啦!