关于java循环结构while和do…while

关于java循环结构while和do…while

前面的文章中我们了解到了java的选择结构,本篇文章我们来了解一下java的循环结构😀。

循环结构

  • while 循环
  • do…while 循环
  • for 循环

while循环

  • while循环是循环结构中的一种,也是最基本的循环。
  • while循环的使用方式:
while(布尔表达式)
{//循环的内容
}
  • while循环的实例说明:
  • 输出1-100
public class Demo
{public static void main(String[] args){int i=0;while(i<100)//每次循环先去判断表达式{i++;System.out.println(i);}}
}

我们执行一下上述的代码,就可以看到如下内容(数字太多了,我把中间的结果用…表示😊)

1
2
3
...
...
100进程结束.....
  • 只要表达式判断的结果为true,就会一直循环下去。
  • 我们大多数情况是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环
  • 少部分的情况需要循环一直执行。
  • 循环条件如果一直为true,会造成无限循环,这种我们称之为死循环,所以在写代码的过程中要尽量避免死循环,除非有特殊需要,因为一直循环会影响性能,严重可能造成系统崩溃。

下面我们来看一下非常常见的题目,计算1+2+3+…+100的和。

public class Demo
{public static void main(String[] args){int i=0;int sum=0;while(i<100){sum=sum+i;//第一次循环 sum=0+0=0  第二次循环 sum=0+1i++;//i=i+1  i=1 i=1+1=2 依次类推}System.out.println(sum);}
}

我们执行一下代码,运行以后可以看到如下结果

5050进程结束......

死循环

死循环也不是完全错误的循环,比如我们平时定的闹钟,等待服务器连接等等,我们下面来看一下什么是死循环。

public class Demo
{public static void main(String[] args){while(true){//循环内容}}
}

while后括号中的条件,始终为true,没有条件可以终止循环,就会无限循环。

do…while循环

  • 对于我们上面介绍的while循环,如果不满足条件,则不会进入循环。
  • 但是do while,我们即使不满足条件,也会循环一次,这个在以后我们做项目的时候也是有需求会用到的。
  • do while 和while 循环相似,但是不同的在于,do while 不满足条件也会执行一次
  • do while 循环结构使用方式:
do
{//执行内容
}
while(布尔表达式);
  • do while 循环实例说明:

我们用刚刚的那道题,用do while 实现一下:计算1+2+3+…+100的和。

public class Demo
{public static void main(String[] args){int i=0;int sum=0;do{sum=sum+i;//第一次循环 sum=0+0=0i++;//i=i+1           }while(i<100);System.out.println(sum);}
}

我们执行一下代码,发现输出的值和while输出的相等。

5050进程结束......

这里可以发现结果是一样的,是因为在第一次执行的时候,sum=0,所以对整体的和没有影响,我们再来通过另一段代码可以更直观的看到区别。

public class Demo
{public static void main(String[] args){int i=0;whlie(i<0){System.out.println(i);i++;}System.out.println("==============")//用线条区分上下文do{System.out.println(i); i++;}while(i<0);System.out.println(sum);}
}

我们执行一下代码,运行以后可以看到如下结果

=============
0进程结束.......

1、我们可以看到,上面的while循环,在第一次进入的时候,先判断条件,然后条件不符合,所以没有执行循环的内容,就没有输出。

2、但是下面的do while 循环,就算条件不满足,也会先执行一次循环,所以输出的值是0。

while 和 do while的区别

  • while 先判断后执行,do while是先执行后判断!
  • do…while总是保证循环会被至少执行一次!这是他们的主要差别😀。

以上就是关于while 和do while 的知识点,我们在下一篇文章中会说到for循环,这个是工作中,项目中比较常见的😎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/584129.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++标准模板库(STL)

标准模板库&#xff08;STL&#xff09;是一组C模板类&#xff0c;提供常见的编程数据结构和函数&#xff0c;如列表、堆栈、数组等。它是一个容器类、算法和迭代器的库。它是一个通用库&#xff0c;因此&#xff0c;它的组件是参数化的。模板类的相关知识是使用STL的先决条件。…

使用Jenkins和单个模板部署多个Kubernetes组件

前言 在持续集成和部署中&#xff0c;我们通常需要部署多个实例或组件到Kubernetes集群中。通过Jenkins的管道脚本&#xff0c;我们可以自动化这个过程。在本文中&#xff0c;我将演示如何使用Jenkins Pipeline及单个YAML模板文件&#xff08;.tpl&#xff09;来部署多个类似的…

Python开发GUI常用库PyQt6和PySide6介绍之三:交互和通信方式讲解

Python开发GUI常用库PyQt6和PySide6介绍之三&#xff1a;交互和通信方式讲解 在PyQt6和PySide6中&#xff0c;事件&#xff08;Event&#xff09;和信号&#xff08;Signal&#xff09;是两个不同的概念&#xff0c;它们都是Qt框架中用于处理不同类型的应用程序响应机制。简言…

【Mars3d】官网示例与项目仓库的历史版本下载

【Mars3d】官网示例与项目仓库的历史版本下载 1.进入官网仓库&#xff1a; mars3d-vue-example: mars3d功能示例&#xff0c;Vue版本 2.以下载3.4.26版本的历史示例为例 <一>建议先 git clone https://gitee.com/marsgis/mars3d-vue-example.git <二>使用vsco…

Unity | 快速修复Animation missing错误

目录 一、背景 二、效果 三、解决办法 一、背景 最近在做2D 骨骼动画相关的Demo&#xff0c;我自己使用Unity引擎进行骨骼绑定并创建了anim后&#xff0c;一切正常&#xff0c;anim也能播放。但是昨天我修改Obj及子物体的名称&#xff08;由中文改为英文&#xff0c;如&…

DataX实现Gauss300->ADB PG(前一天数据)增量迁移

1、提前准备源Gauss300、目标 ADB PG数据库连接信息。 psql -hx.x.x.x -p25308 -Utest1 -ddb_name xxxxxxpsql -hx.x.x.x -p3432 -Utest1 -ddb_name xxxxxx 2、编写迁移脚本&#xff0c;并执行迁移。 #!/bin/bash file_name1.json today_datadate "%Y-%m-%d 00:00:00&…

svg学习

概念 svg 可缩放矢量图形 svg 使用xml格式定义图像 svg 形状 矩形 <rect> <?xml version"1.0" standalone"no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd&q…

OpenCV入门01:图像处理简介/图像的基础操作

项目开源&#xff0c;地址&#xff1a;https://gitee.com/zccbbg/opencv_study 文章目录 图像处理简介灰度图像二值图像彩色图 opencv 介绍图像基础操作图像读取与显示绘制几何图形图像的属性其他操作算数操作加法混合 图像色彩空间转换 图像处理简介 灰度图像 ● 灰度图像是…

VIOOVI干货分享:生产标准工时的计算与观测次数确认

在制造业中&#xff0c;生产标准工时是一个关键指标&#xff0c;它可以帮助企业确定生产效率、评估员工绩效以及优化生产流程。本文将介绍生产标准工时的计算方法&#xff0c;并探讨如何确认观测次数&#xff0c;以充分利用ECRS工时分析软件。 一、生产标准工时的计算 生产标准…

【WPF.NET开发】对象生存期事件

本文内容 先决条件视觉对象的生存期事件其他生存期事件 在所有对象的生存期内&#xff0c;Microsoft .NET 托管代码中的所有对象都会经历“创建”、“使用”和“销毁”的阶段。 当关于这些阶段的通知出现在对象上时&#xff0c;Windows Presentation Foundation (WPF) 会通过…

售后客服日常回复必备的话术

致歉安抚通用 1.非常抱歉耽误您宝贵的时间了&#xff0c;这边给您查询一下&#xff0c;请稍等。 2.非常抱歉&#xff0c;给您添麻烦了。这边为您转接售后专员给您处理&#xff0c;请亲稍等。 3.影响到您的购物体验万分抱歉。 4.这边都会给您尽心解决的呢。 5.我非常理解您…

算法:加油站

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 一、问题描述 二、原始解法 总结 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、问题描述 在一条环路上有N个加油站&#xff0c;其中第…

深度解析高防产品---游戏盾

游戏盾是针对游戏行业所推出的高度可定制的网络安全解决方案&#xff0c;游戏盾是高防产品系列中针对游戏行业的安全解决方案。游戏盾专为游戏行业定制&#xff0c;针对性解决游戏行业中复杂的DDoS攻击、游戏CC攻击等问题。游戏盾通过分布式的抗D节点&#xff0c;可以防御TB级大…

@PersistenceContext和@Autowired在EntityManager上应用的不同

首先PersistenceContext是jpa专有的注解&#xff0c;而Autowired是spring自带的注释 上方图片的意思就是EntityManager不是线程安全的&#xff0c;当多个请求进来的时候&#xff0c;spring会创建多个线程&#xff0c;而PersistenceContext就是用来为每个线程创建一个EntityMana…

AI渲染:改变图像和视频制作的技术革命

随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;其应用领域已经覆盖了从医疗、教育到娱乐、艺术等各个行业。其中&#xff0c;AI在图像和视频制作领域的应用尤为引人注目&#xff0c;而AI渲染则是这一领域中的一颗璀璨明珠。AI渲染利用人工智能算法对图像和…

智能外呼系统全新升级,携手企业迈向高效转化新时代

智能外呼系统已成为企业提升业务效率和转化率的重要工具。随着人工智能技术的不断进步&#xff0c;智能外呼系统迎来了全面升级&#xff0c;旨在进一步助力企业优化客户沟通流程&#xff0c;提高业务转化效率。 新升级的智能外呼系统采用了更先进的自然语言处理技术&#xff0c…

Linux free命令使用教程(free指令)(查看内存、系统内存、内存占用、内存使用情况)

文章目录 Linux free命令使用教程1. free命令简介2. free命令选项2.1 显示单位&#xff08;free -b、free -k、free -m、free -g&#xff09;2.2 使用人类可读的格式&#xff08;free -h&#xff09;2.3 显示总计数&#xff08;free -t&#xff09;2.4 连续监视内存使用 3. 解析…

新疆老人扶梯摔倒铁路民警秒速救援 揭秘富维智能识别跌倒技术

近日&#xff0c;吐鲁番北站进站口一位年长的乘客在火车站的扶梯上突然失去平衡摔倒了&#xff0c;紧张的一幕在铁路民警的快速反应下得到了及时的处理。这位民警的敏捷和专业救援能力赢得了大家的称赞&#xff0c;同时也让我们思考&#xff1a;如何更好地及时报警这类事故的发…

【强化学习】基于蒙特卡洛MC与时序差分TD的简易21点游戏应用

1. 本文将强化学习方法&#xff08;MC、Sarsa、Q learning&#xff09;应用于“S21点的简单纸牌游戏”。 类似于Sutton和Barto的21点游戏示例&#xff0c;但请注意&#xff0c;纸牌游戏的规则是不同且非标准的。 2. 为方便描述&#xff0c;过程使用代码截图&#xff0c;文末附链…

马斯克谈六西格玛:管理质量与火箭科学如何相辅相成

如果你问我&#xff0c;作为一个有志于送人类上火星的家伙&#xff0c;六西格玛管理有没有用&#xff1f;我会说&#xff0c;如果把火箭控制的精度与六西格玛得到的生产质量相比&#xff0c;你会发现两者都追求同一件事&#xff1a;接近零缺陷的完美。 六西格玛不只是一组工具…