专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 while循环语句详解

while循环语句详解

更新时间:2022-08-15 07:40:00 来源:动力节点 浏览437次

Java while 循环语句是一种控制流语句,它允许基于给定的布尔条件重复执行代码。while 循环可以被认为是一个重复的 if 语句。

在控制结构的迭代(或重复)类别中,有两种常用的测试前循环。它们是:while 和 for。

迭代的概念与可能想要重复一个动作有关。像所有控制结构一样,我们提出一个问题来控制循环的执行。术语循环来自使用流程图时发生的循环运动。

在大多数编程语言中,问题(称为测试表达式)是一个布尔表达式。Boolean 数据类型有两个值——真和假。让我们重写结构来考虑这一点:

标志的初始化

当表达式为真时

一些陈述或行动

一些陈述或行动

一些陈述或行动

更新标志

在 while 控制结构中,正常工作的循环有四个属性。他们是:

初始化标志

测试表达式

行动或行动

更新

标志的初始化在技术上不是控制结构的一部分,而是在循环开始之前发生的必要项目。英文短语是“当表达式为真时,请执行以下操作”。这是真实的循环。当测试表达式为假时,您停止循环并继续程序中的下一项。请注意,因为这是循环前的测试,所以 可能不会发生操作。它被称为循环前的测试,因为测试先于动作。它有时也被称为预测试循环,这意味着测试是在动作和更新之前(或拉丁语表示之前)。

while 循环的人类示例

考虑以下从母亲到孩子的单向对话。

孩子:孩子什么也没说,但妈妈知道孩子早餐吃了麦片,而且历史告诉我们,孩子很可能把麦片洒在地板上。

妈妈说:“虽然你确实看到(只要你能看到)地板上有一个 Cheerio,但把它捡起来扔进垃圾桶。”

注意:所有元素都存在以确定孩子将要做的动作(或流程)(在这种情况下是重复的)。因为这个问题(你能看到一个 Cheerios)只有两个可能的答案(真或假),当地板上有 Cheerios 时,动作将继续。要么孩子 1) 永远不会捡起 Cheerio,因为他们从来没有洒过任何东西,或者 2) 捡起 Cheerio 并一次接一个地捡起 Cheerio,而他可以看到地板上的 Cheerio(直到它们都被捡起) .

无限循环

在这一点上,值得一提的是,好的编程总是提供一种方法来确保循环问题最终为假,从而使循环停止执行,程序继续执行下一行代码。但是,如果这没有发生,则程序处于无限循环中。无限循环是一件坏事。考虑以下代码:

伪代码无限循环

loop_response = 'y'
而 loop_response == 'y'
    输出“你几岁?”
    输入用户年龄
    输出“你朋友的年龄?”
    输入friend_age
    输出“你的年龄加起来是:”
    输出 user_age +friend_age

程序员在循环之前为标志分配了一个值,这是正确的。但是,他们忘记更新标志了。每次询问测试表达式时,它总是为真。因此,一个无限循环是因为程序员没有提供退出循环的方法(他忘记更新标志)。考虑以下代码:

loop_response = 'y';
而 loop_response = 'y'
    输出“你几岁?”
    输入用户年龄
    输出“你朋友的年龄?”
    输入friend_age
    输出“你的年龄加起来是:”
    输出 user_age +friend_age
    输出“你想再试一次吗?y or n”
    输入 loop_response

无论用户在标志更新期间回复什么,测试表达式都不会进行关系比较而是进行赋值。它将“y”分配给变量并询问“y”是否为真?由于所有非零值都被视为代表真,因此测试表达式的答案为真。维奥拉,你有一个无限循环。

计数循环

上面的示例适用于事件控制循环。标志更新是某人决定是否希望循环再次执行的事件。通常初始化设置标志,以便循环将至少执行一次。

while 循环的另一个常见用法是作为计数循环。考虑:

计数器 = 0
当计数器 < 5
    输出“我喜欢冰淇淋!”
    计数器 += 1

变量 counter 被称为控制循环。在进入while循环结构之前设置为零(称为初始化),只要小于5(五);循环动作将被执行。但是循环操作的一部分使用增量运算符将计数器的值增加一。执行循环五次后(一次用于计数器的值:0、1、2、3 和 4),表达式将为 false,程序中的下一行代码将执行。计数循环旨在执行一组给定次数的动作(可能不止一个语句)。在我们的示例中,消息在监视器上显示五次。它是通过确保 while 控制结构的所有四个属性都存在并正常工作来完成的。属性是:

初始化标志

测试表达式

行动或行动

更新

缺少属性可能会导致无限循环或产生不希望的结果(无法正常工作)。

无限循环

考虑:

计数器 = 0;
而计数器 < 5
    输出“我喜欢冰淇淋!”

缺少标志更新通常会导致无限循环。

计数的变化

在下面的示例中,整数变量 age 被称为控制循环(即标志)。我们可以假设年龄在程序前面提供了一个值。因为while结构是循环前的测试;有可能这个人的年龄是 0(零)并且我们第一次测试表达式时它会是假的,并且循环的动作部分永远不会被执行。

虽然 0 < 年龄
    输出“我爱糖果!”
    年龄 -= 1

假设 age 和 counter 都是整数数据类型并且 age 具有值,请考虑以下变体:

计数器 = 0;
而计数器 < 年龄
    输出“我喜欢玉米片!”
    计数器 += 1

这个循环是一个计数循环,类似于我们的第一个计数循环示例。唯一的区别是我们的表达式中没有使用文字常量(即 5),而是使用变量 age(以及存储在 age 中的值)来确定执行循环的次数。然而,与我们的第一个计数循环示例不同,它总是会执行 5 次;有可能这个人的年龄是 0(零)并且我们第一次测试表达式时它会是假的,并且循环的动作部分永远不会被执行。如果大家想了解更多相关知识,可以关注一下动力节点的Java教程,里面有更丰富的知识等着大家去学习,希望对大家能够有所帮助。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>