首页 > 编程语言 >Java流程控制语句-while

Java流程控制语句-while

时间:2024-11-09 20:14:49浏览次数:3  
标签:语句 do Java 代码 while 循环 false true

目录

什么是while

while的用法:

1:while

2:do...while

二者区别:

特别注意:

死循环:

1:未对条件进行操作:


什么是while

在Java流程控制语句中,while属于循环语句,用来进行循环执行代码块,根据条件来进行循环,直到条件不符合则退出循环,正常情况下单独使用,偶尔会和do同时使用,用来设置更加符合要求的循环,具体用法如下:

while的用法:

1:while

此用法优先对while内的条件进行判断,如果为true,则直接运行内部代码,运行完毕之后,重新进行判断,直到结果为false退出循环,向下继续执行代码:

int i = 1;
while (i <= 5) {
    System.out.println(i);
    i++;
}
System.out.println("循环结束");

该代码执行结果为:

1
2
3
4
5
循环结束

由此可见,i的初始值为1,在判断while条件的时候,条件结果为true,所以执行while内部代码,每次执行,i的值都会加一,当i = 6时,while的条件不再被满足,条件结果为false,所以while内部的代码不再被执行,直接跳过执行下方代码。

2:do...while

此用法while和do搭配使用,与while单独使用不同的是,该部分代码不论条件是否为true,先执行一次代码块在进行判断,结果为true时再返回do处重新执行代码块,直到while处代码为false时,不再进行循环,直接向下执行代码:

int i = 1;
do {
    System.out.println(i);
    i++;
} while (i > 5);
System.out.println("循环结束");

该代码执行结果为:

1
循环结束

由此可见,i的初始值为1,不符合while的条件,但是由于和do搭配使用,所以先强制执行一次代码,再进行判断,要注意的是,再判断时,i的值不再是1,而是2,所以当while和do搭配使用时,要注意本来结果为false的条件会不会在通过一次运算后变成true,如果有此类情况发生,要核对是否符合本来要求。

二者区别:

while是先进行判断,后进行循环,如果第一次是false,则不会执行while内部代码;

do...while是先进行一次循环,再进行判断,不论第一次条件是否为false,总会执行至少一次循环代码,也要注意本来为false的条件会不会执行之后变为true。

特别注意:

死循环:

死循环,即一直在循环不会跳出循环,原因通常是条件不合适,或者代码内部没有对变量进行操作:

1:未对条件进行操作:

int i = 1;
while (i <= 5) {
    System.out.println(i);
}
System.out.println("循环结束");

该代码执行结果为:

1
1

1

...

1

1

...

该循环的执行结果将会是 1的无限循环,因为没有对变量i进行操作,导致条件一直为true,循环不会跳出,所以会造成死循环。

2:条件不合理:

int i = 1;
do {
    System.out.println(i);
    i++;
} while (i > 1);
System.out.println("循环结束");

该代码执行结果为:

1
2

3

4

5

6

...

该循环的执行结果将会是1到无限大的递增,每次增加1,本来条件i>1是false,但是由于执行一次之后,结果就变为true,无法跳出循环,导致出现死循环;

总结:

当使用循环时,要根据需求进行编写,尤其注意不要出现死循环,如果出现死循环,并且无法即使关闭程序,会导致数据溢出,服务器卡死。

标签:语句,do,Java,代码,while,循环,false,true
From: https://blog.csdn.net/loser_mine/article/details/143650039

相关文章

  • 基于Java+SpringBoot心理测评心理测试系统功能实现十
    免费下载:[猿来入此]一、前言介绍:1.1项目摘要心理测评和心理测试系统在当代社会中扮演着越来越重要的角色。随着心理健康问题日益受到重视,心理测评和心理测试系统作为评估个体心理状态、诊断心理问题、制定心理治疗方案的工具,其需求和应用范围不断扩大。首先,现代社会节奏快速,......
  • 【java】ArrayList与LinkedList的区别
    目录1.说明2.内部实现2.1ArrayList2.2LinkedList3.性能特点3.1插入和删除操作3.2访问操作3.1遍历操作4.使用场景5.扩容机制6.空间开销1.说明1.Java中的ArrayList和LinkedList是两种常用的集合实现类,都属于Java集合框架的一部分,但它们在内部实现、......
  • Java入门程序之一维数组的基础运用
    Java入门程序之一维数组的基础运用​本文详细介绍了Java中数组的概念、创建与初始化、一维数组的使用、内存分布以及二维数组。讲解了数组的静态与动态初始化、元素访问与修改、遍历方式。一、数组的基本概念数组的初始化例如:int[]array1=newint[20];//创建一个......
  • Java 单例模式
    Java单例模式示例 packagecom.joyupx.cms.example.single;/***多线程环境中保证单例的写法。*@authorhapday*/publicclassSingleInstanceExample{privatestaticSingleInstanceExamplesingleInstanceExample;privateSingleInstanceExample()......
  • (JAVA)基于TCP通信多人聊天系统
    一、目标 这个项目是一个基于TCP协议的简单多人聊天系统,包含一个服务器和多个客户端。服务器接受多个客户端的连接,每个客户端发送的消息都可以转发给其他所有在线的客户端,实现了一个基本的多人实时聊天功能。项目使用Java编程语言编写,利用ServerSocket和Socket 创建......
  • 104.力扣(leetcode)二叉树的最大深度(JAVA)
    一、目标给定一个二叉树 root ,返回其最大深度。二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。二、代码分析总代码:/***Definitionforabinarytreenode.*publicclassTreeNode{*intval;*TreeNodeleft;*TreeN......
  • 力扣(Leetcode)112. 路径总和(JAVA)
    一、目标 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。叶子节点 是指没有子节点的节点。二、代码解读......
  • 257. 力扣(LeetCode)二叉树的所有路径(JAVA)
    一、目标给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。叶子节点 是指没有子节点的节点。二、代码解读总代码:/***Definitionforabinarytreenode.*publicclassTreeNode{*intval;*TreeNodeleft;*......
  • Java毕业设计-基于SSM的新生报到系统【代码+论文+PPT+开题】
    全文内容包括:1、采用技术;2、系统功能;3、系统截图;4、部分代码;5、配套内容。索取方式见文末微信号,欢迎关注收藏!一、采用技术语言:Java1.8框架:SSM数据库:MySQL5.7、8.0开发工具:IntelliJIDEA旗舰版其他:Maven3.8以上二、系统功能个人中心:提供学生个人信息查看与编辑,以及报到进度......
  • java毕业设计-基于SSM的购物商城系统【代码+论文+PPT+开题+任务书】
    全文内容包括:1、采用技术;2、系统功能;3、系统截图;4、部分代码;5、配套内容。索取方式见文末微信号,欢迎关注收藏!一、采用技术语言:Java1.8框架:SSM数据库:MySQL5.7、8.0开发工具:IntelliJIDEA旗舰版其他:Maven3.8以上二、系统功能个人中心:管理用户个人信息,包括资料编辑、密码修改......