JAVA中的while do-while循环以及for循环的深刻理解 入门 小白必看

2023-11-19

循环

循环的作用

作用: 循环是可以用于让一个程序反复执行语句。

提出问题为什么需要循环?

假如你需要打印一个字符串(例如"Welcome to Java")100次,就需要把下面的输出语句敲上一百遍,这个重复的工作是相当的烦琐,再说时间也不是这样浪费的所以为此发明了循环。
System.out.println(Welcome to 博客);

解决问题循环的出现

那么为此Java提供了一种称为循环(loop)的功能强大的构造,用来控制或操作序列重复执行的次数。

while (前序)循环
	int count = 0;//count(次数)
	while(count<100{//判断次数是否小于100,若小于100则停止循环
		System.out.println("Welcome to 博客");//每次都会打印 Welcome to Java
		count++;//每次循环count都会加1
	}
	System.out.println("鲍鱼是公的母的?买来会喷水吗?煮熟了可以放生吗?");

那么上面就是用while循环来解决问题,那么我们来解释下代码块。
变量 count的初始值是0。然后java检测 while(count < 100) 这里while是循环的标记然后让那个java知道它要判断(count < 100)循环条件 是否成立也就是是否为true。若为true则一直执行循环体 ( 循环体就是上述的{ }里的内容 ) 直到循环条件(count<100)不成立为false (例如:count == 100 ),此时循环就结束,也就是说不再重复的打印循环体里的内容而是跳出循环继续执行后续代码。循环跳出打印:鲍鱼是公的母的?买来会喷水吗?煮熟了可以放生吗?

while循环的语法与流程以及细节
while 循环语法
	while(循环继续条件){
	//循环体
	}

那么我们看一下流程图一目了然循环条件为true就会一直重复到达循环的效果
下图中的循环前语句: 变量 count
循环条件就是:while(count < 100)
循环体就是:System.out.println(“Welcome to 博客”);
后续代码是:System.out .println(“鲍鱼…”);在这里插入图片描述
那么我们来说下细节。这中明确了要循环执行的次数的循环,叫做计数器控制的循环
1.循环继续的条件是必须放在括号里的。
2.只有循环体只包含一条语句或不包含语句时,循环体的大括号可以不写。
例如:
int count =0;
whilr(count<100)
System.out.println("这中情况下不用写 { } ");
System.out.println(“这里是不会循环的”);
因为这中情况下while循环的作用域(作用域(scope),程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。)只有一行。
但是我们严谨所以我们要保留好的习惯不管是否为一句我们都要加上打括号。
3.控制循环的变量不能为浮点数类型,也就是说count不可以为浮点数,以为浮点数往往不精确导致成为死循环
4.死循环。死循环表示的这个循环一直不会结束,也就是无限循环,人不停程序会一之执行。
例如:
int sum = 0,i =1;
while( i < 10 ){
sum+=1;
}
这里的i永远都是1,所以循环判断条件一直为true,程序一直循环导致成为死循环,所以要保证判断条件最终为false。

do-while (后序循环)
   do-while循环和while循环基本一样,不同的是它先执行循环体一次,然后判断循环条件。
do-while循环是while循环的变体。
do-while循环的语法和流程
	do{
		//循环体;
		//控制循环条件的变量自增count++
	}while(循环判断条件)
	do-while的执行流程图是这样子的一目了然,和while没有什么区别只是执行顺序有点不同

在这里插入图片描述

while和do-while 之间的区别
	他们之间的区别在于:计算循环继续条件和执行循环体的先后顺序不同,也是它们为何被称为前序和后序在使用do-while循环时至少可以执行一次循环体,while可能一次
也不执行。两者个有特色。某种情况下选择其中一种会比另一种更方便。
for循环(前序循环)
	for循环对初学者来说比较直观,易于掌握。
	for(int count = 0;count < 100;count++){
		System.out.println("Welcome to 博客");
	}
	
for循环语法:
	for(初始变量;循环条件;每次(迭代)循环后的操作){
		//循环体;
	}
for循环的流程图和while循环的对比
	这是for循环的流程图,可以看出来它是在循环体结束后才执行的才执行++操作的这个我们要记住

在这里插入图片描述

	这里我们看一下代码上的变化

在这里插入图片描述

	可以看到for循环和while循环并没有什么太大的差别,只是简化的while而已,但是看似乎简单
初学者往往会导致疏忽变成死循环。
for 循环的解析
  1. for循环语句是从那个关键字for开始,然后是用一对()圆括号括住的是 循环控制结构体。
  2. 循环控制结构体包括初始控制变量操作,循环条件,和每次迭代后的操作。控制结构体后紧跟着{ }的循环体。
    注意:循环控制结构体中的初始化操作,循环条件,以及迭代后的操作的哦要用;隔开。
  3. 总结 while, do-while,for 可以理解为java判断循环的关键字,其中判断条件结果是为一个boolean 值。为真(true)则循环 反之假(fales)结束循环执行后续语句。
关键字break和continue
	这两个关键字在实际开发中用处很少的,简单的做出介绍

break关键字跳出作用域的整个循环
countinue之是跳出了一次迭代

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JAVA中的while do-while循环以及for循环的深刻理解 入门 小白必看 的相关文章

  • 唯一索引或主键违规:“PRIMARY KEY ON PUBLIC.xxx”; SQL语句

    每当我的应用程序启动时 我都会收到以下错误消息 Caused by org h2 jdbc JdbcSQLException Unique index or primary key violation PRIMARY KEY ON PUBL
  • ElasticBeanstalk Java,Spring 活动配置文件

    我正在尝试通过 AWS ElasticBeanstalk 启动 spring boot jar 一切正常 配置文件为 默认 有谁知道如何为 java ElasticBeanstalk 应用程序 不是 tomcat 设置活动配置文件 spri
  • AES 加密 Java/plsql

    我需要在Java和plsql DBMS CRYPTO for Oracle 10g 上实现相同的加密 解密应用程序 两种实现都工作正常 但这里的问题是我对相同纯文本的加密得到了不同的输出 下面是用于加密 解密过程的代码 Java 和 PLS
  • 在Windows上安装Java 11 OpenJDK(系统路径问题)

    Java 11 最近发布了 众所周知 这个版本没有安装文件 当然 要在没有安装程序的情况下安装 Java 我将系统设置 PATH 和 JAVA HOME 设置为解压缩 Java 11 的文件夹的地址 根据对类似问题的已接受回复建议 唯一的事
  • manifest.mf 文件的附加内容的约定?

    Java JAR 中的 MANIFEST MF 文件是否有任何超出 MANIFEST MF 约定的约定 JAR规范 http download oracle com javase 1 4 2 docs guide jar jar html
  • Java8无符号算术

    据广泛报道 Java 8 具有对无符号整数的库支持 然而 似乎没有文章解释如何使用它以及有多少可能 有些函数 例如 Integer CompareUnsigned 很容易找到 并且似乎可以实现人们所期望的功能 但是 我什至无法编写一个简单的
  • HDFS:使用 Java / Scala API 移动多个文件

    我需要使用 Java Scala 程序移动 HDFS 中对应于给定正则表达式的多个文件 例如 我必须移动所有名称为 xml从文件夹a到文件夹b 使用 shell 命令我可以使用以下命令 bin hdfs dfs mv a xml b 我可以
  • Java 页面爬行和解析之 Crawler4j 与 Jsoup

    我想获取页面的内容并提取其中的特定部分 据我所知 此类任务至少有两种解决方案 爬虫4j https github com yasserg crawler4j and Jsoup http jsoup org 它们都能够检索页面的内容并提取其
  • 如何在jsp代码中导入java库?

    我有以下jsp代码 我想添加 java io 等库 我怎样才能做到这一点
  • Prim 的迷宫生成算法:获取相邻单元格

    我基于 Prim 算法编写了一个迷宫生成器程序 该算法是 Prim 算法的随机版本 从充满墙壁的网格开始 选择一个单元格 将其标记为迷宫的一部分 将单元格的墙壁添加到墙壁列表中 While there are walls in the li
  • 在具有相同属性名称的不同数据类型上使用 ModelMapper

    我有两节课说Animal AnimalDto我想用ModelMapper将 Entity 转换为 DTO 反之亦然 但是对于具有相似名称的一些属性 这些类应该具有不同的数据类型 我该如何实现这一目标 动物 java public class
  • 从 android 简单上传到 S3

    我在网上搜索了从 android 上传简单文件到 s3 的方法 但找不到任何有效的方法 我认为这是因为缺乏具体步骤 1 https mobile awsblog com post Tx1V588RKX5XPQB TransferManage
  • 将 Long 转换为 DateTime 从 C# 日期到 Java 日期

    我一直尝试用Java读取二进制文件 而二进制文件是用C 编写的 其中一些数据包含日期时间数据 当 DateTime 数据写入文件 以二进制形式 时 它使用DateTime ToBinary on C 为了读取 DateTime 数据 它将首
  • 使用 SAX 进行 XML 解析 |如何处理特殊字符?

    我们有一个 JAVA 应用程序 可以从 SAP 系统中提取数据 解析数据并呈现给用户 使用 SAP JCo 连接器提取数据 最近我们抛出了一个异常 org xml sax SAXParseException 字符引用 是无效的 XML 字符
  • Windows 上的 Nifi 命令

    在我当前的项目中 我一直在Windows操作系统上使用apache nifi 我已经提取了nifi 0 7 0 bin zip文件输入C 现在 当我跑步时 bin run nifi bat as 管理员我在命令行上看到以下消息 但无法运行
  • Java - 不要用 bufferedwriter 覆盖

    我有一个程序可以将人员添加到数组列表中 我想做的是将这些人也添加到文本文件中 但程序会覆盖第一行 因此这些人会被删除 如何告诉编译器在下一个空闲行写入 import java io import java util import javax
  • 将 JTextArea 内容写入文件

    我在 Java Swing 中有一个 JTextArea 和一个 提交 按钮 需要将textarea的内容写入一个带有换行符的文件中 我得到的输出是这样的 它被写为文件中的一个字符串 try BufferedWriter fileOut n
  • 中断连接套接字

    我有一个 GUI 其中包含要连接的服务器列表 如果用户单击服务器 则会连接到该服务器 如果用户单击第二个服务器 它将断开第一个服务器的连接并连接到第二个服务器 每个新连接都在一个新线程中运行 以便程序可以执行其他任务 但是 如果用户在第一个
  • JAVA - 如何从扫描仪读取文件中检测到“\n”字符

    第一次海报 我在读取文本文件的扫描仪中读取返回字符时遇到问题 正在读取的文本文件如下所示 test txt start 2 0 30 30 1 1 90 30 0 test txt end 第一行 2 表示两个点 第二行 位置索引 0 xp
  • Jackson 将单个项目反序列化到列表中

    我正在尝试使用一项服务 该服务为我提供了一个带有数组字段的实体 id 23233 items name item 1 name item 2 但是 当数组包含单个项目时 将返回该项目本身 而不是包含一个元素的数组 id 43567 item

随机推荐

  • 预警:传统的QA岗位将被DevOps淘汰

    导读 在大多数机构或公司里 软件开发过程主要遵循一个或多个开发模型 例如瀑布模型或敏捷模型 在瀑布模型中 测试活动一般都在后期进行 软件开发完成后 缺陷被QA团队找出 然后再被修复 后两个活动不断循环和重复 指导管理者认为软件可以被公开发布
  • 在wsl中判断wsl的版本是wsl1还是wsl2

    判断wsl的版本 代码逻辑 通过判断 cat proc version 是否包含wsl等字符来判断wsl的版本 代码 bin bash Get the content of proc version proc version cat pro
  • chatgpt赋能python:如何用Python进行SEO优化

    如何用Python进行SEO优化 介绍 Search Engine Optimization SEO 即搜索引擎优化 是提高网站排名和流量的关键 Python作为一种强大的编程语言 可以帮助我们优化网站的SEO 在本文中 我们将探讨如何用P
  • 如何批量Ping 1000个IP地址,一个小技巧节约N小时?

    一 批量ping网段 对于一个网段ip地址众多 如果单个检测实在麻烦 那么我们可以直接批量ping网段检测 那个ip地址出了问题 一目了然 先看代码 直接在命令行窗口输入 for L D in 1 1 255 do ping 10 168
  • 定义类数组

    编写学生类 包含姓名 学号 成绩三个属性 题目要求 1 为学生类添加构造函数给每个成员属性赋值 使用this关键字 2 为学生添加toString 方法显示所有属性 3 在测试类中定义学生数组 长度为4 分别给数组每个元素赋值 然后循环调用
  • Vue自定义插件的编写

    如何实现一个vue的自定义插件 div div
  • windows 如何查询主板sn(主板ID)

    wmic bios get serialnumber
  • dell服务器维护软件,Dell服务器硬件,RAID等查询和维护软件OMSA_推荐

    Dell服务器硬件 RAID等查询和维护软件OMSA 推荐 原创 chenshengang2014 01 17 19 07 03 著作权 阅读数 441 著作权归作者所有 来自51CTO博客作者chenshengang的原创作品 如需转载
  • Java 读取resources下的资源文件

    Web项目中应该经常有这样的需求 在maven项目的resources目录下放一些文件 比如一些配置文件 资源文件等 文件的读取方式有好几种方式 本文会对常用的读取方式做一个总结 并说明一下应该注意的地方 准备工作 新建一个spring t
  • 无向图染色问题-dfs剪枝

    无向图染色问题 问题描述 给定一个无向图 要求用最少的颜色将节点染色 限制是不能让相邻节点染上相同的颜色 算法 使用dfs 为节点分配不同的颜色进行尝试 计算每种分配所需的颜色数 最终进行回溯 取得最小的颜色数 代码 C include
  • OpenAI最新发布通用人工智能路线图!AGI比想象中来得更快!

    点击下方卡片 关注 CVer 公众号 AI CV重磅干货 第一时间送达 点击进入 gt 计算机视觉 微信技术交流群 转载自 机器之心 编辑 泽南 小舟 通用人工智能的出现可能只是技术发展历程中的一个小节点 因为 AGI 或许可以加速自身的进
  • 点云/网格模型的体积计算

    点云体积计算 有时用激光扫描设备扫描零件或者用无人机进行测量后会想知道它们的体积 比如下面的土堆 如果扫描得到的数据是一系列三维点云 那么体积就比较难求 因为如何定义物体的边界比较困难 一种方法是提取三维点云的凸壳 包络体 然后再进行计算
  • 第五章 数据清洗

    5 1数据去重 5 1 1完全去重 点击 获取字段 配置csv文件输入的属性 Name Gender City 配置唯一行属性 选择要去重的属性 Name Gender City 运行结果 完全去重成功 5 1 2不完全去重 将文本分隔符替
  • 支付宝短视频平台创作分成激励项目

    没想到支付宝也开通了中视频计划 这波羊毛算是蒿定了 最近啊 马爸爸火速上线了支付宝创作分成计划 明显就是抄的抖音中视频计划 目前还在内测阶段 补贴的力度非常大 错过的话就只能拍大腿了 看到短视频这么的火爆 巨头大佬们都想分一杯羹啊 阿里也不
  • Linux下MySQL启动、停止、重启的几种方式

    一 启动 1 使用service 启动 service mysqld start 2 使用 mysqld 脚本启动 etc inint d mysqld start 3 使用 safe mysqld 启动 safe mysqld 二 停止
  • 互联网产品上线流程,及面试题分类

    一 基础情况 问题1 自我介绍 3mins 与自我介绍 1min 问题2 为什么你要来这个行业 问题3 为什么你要来这个岗位 问题4 为什么你能胜任这份工作 问题5 为什么你要离职 问题6 过往经历STAR故事描述 问题7 你的职业规划是什
  • php mes代码,完整MES代码(含客户端和server端)

    实例简介 完整的代码 带数据库文件 包含客户端 服务端 实例截图 核心代码 MES 源代码 MES 源代码 MES 源代码 dll AjaxControlToolkit dll AspNetServer dll AxInterop CELL
  • el-form 校验单个字段

    单个校验 核心为 validateField 而非validate
  • 关于编译器生成默认构造函数的理解

    构造函数 构造函数是创建类类型对象时 由编译器自动调用 用来初始化对象的函数 它保证每个数据成员都有一个合适的初始值 并且在对象的生命周期内只调用一次 函数名与类名相同 无返回值 构造函数可以重载 什么是默认构造函数 无参的构造函数 全缺省
  • JAVA中的while do-while循环以及for循环的深刻理解 入门 小白必看

    循环 循环 循环 循环的作用 提出问题为什么需要循环 解决问题循环的出现 while 前序 循环 while循环的语法与流程以及细节 do while 后序循环 do while循环的语法和流程 while和do while 之间的区别 f