当前位置: 首页 > news >正文

「Java流程控制」while循环

Java里的while循环就像每天早晨的闹钟,只要条件满足就会一直响个不停,直到把它关掉为止。

while循环就像重复做同一件事

想象一下在玩投篮游戏,只要篮筐里还有位置,就要一直往里投球。用while循环写出来是这样的:

int 篮筐容量 = 5;
int 投球次数 = 0;while (投球次数 < 篮筐容量) {System.out.println("第" + (投球次数 + 1) + "个球投进啦!");投球次数++;
}
System.out.println("篮筐满啦,不能再投了!");

代码解析

  • while后面的括号里是条件,就是判断篮筐还有没有空位。
  • 大括号里的代码块就是要重复执行的动作。
  • 投球次数++这个很重要,每次循环都让计数器加1,不然就会变成无限循环。
  • 当条件不满足时,循环就结束,执行后面的语句。

案例解析

猜数字游戏

编写一个程序,实现经典的小游戏,让电脑随机出一个1 ~ 100的整数,来猜这个数字。

# 源文件保存为“GuessNumber.java”。
import java.util.Random;
import java.util.Scanner;public class GuessNumber {public static void main(String[] args) {Random rand = new Random();int number = rand.nextInt(100) + 1; // 1-100的随机数Scanner scanner = new Scanner(System.in);int count = 0;boolean right = false;System.out.println("我想了个1-100的数字,猜猜看?");while (!right) {System.out.print("你的猜测:");int guessNumber = scanner.nextInt();count++;if (guessNumber > number) {System.out.println("太大啦!");} else if (guessNumber < number) {System.out.println("太小啦!");} else {right = true;System.out.println("恭喜!你用了" + count + "次猜对了!");}}scanner.close();}
}

运行结果
依次输入猜测的数字,会得到:

我想了个1-100的数字,猜猜看?
你的猜测:50
太大啦!
你的猜测:25
太大啦!
你的猜测:13
太大啦!
你的猜测:5
太小啦!
你的猜测:9
太小啦!
你的猜测:11
恭喜!你用了6次猜对了!

这个游戏中,while (!right)是循环条件,只要没猜对就一直循环。每次循环都让玩家输入一个数字,然后给出提示。

智能电饭煲煮饭程序

想象一下电饭煲煮饭,它会一直煮饭直到水分收干。用while循环模拟这个过程特别形象:

# 源文件保存为“RiceCooker.java”。
public class RiceCooker {public static void main(String[] args) {double water = 100; // 单位:毫升int time = 0; // 单位:分钟System.out.println("开始煮饭...");while (water > 0) {water -= 8.5; // 每分钟蒸发8.5mltime++;System.out.println("第" + time + "分钟,剩余水量:"+ (water > 0 ? water : 0) + "ml");}System.out.
http://www.dtcms.com/a/263427.html

相关文章:

  • Redis 实现消息队列
  • 【软考高项论文】论信息系统项目的质量管理
  • js代码01
  • 【数据分析】环境数据降维与聚类分析教程:从PCA到可视化
  • uniapp+vue2 input不显示明文密码,点击小眼睛显示或隐藏密码
  • “对象创建”模式之原型模式
  • window显示驱动开发—全屏模式
  • SuperGlue:基于图神经网络的特征匹配技术解析
  • 【Linux系统部分】在Linux命令行中写一个简单的shell外壳
  • ansible的剧本文件一般放在什么地方?
  • creo 2.0学习笔记
  • Stanford_CS224W----Machine learning with graph
  • (5)pytest-yield操作
  • 实现ModbusTCP转Profinet网关协议转换功能的网关设备
  • 【python】langgraph环境安装的曲折办法
  • 问题分解提示法:用结构化方法破解LLM复杂任务难题
  • 信创项目oracle数据库迁移到达梦数据库需要会有哪些问题?如何解决?
  • 《Redis可扩展:轻松应对数据增长与流量高峰》
  • Python 数据分析与机器学习入门 (六):Seaborn 可视化技巧,图表更美观
  • 飞算 JavaAI 深度实战:从老项目重构到全栈开发的降本增效密码
  • Windows如何安装beego环境问题解
  • 正交视图三维重建2 笔记 2d线到3d线2 先生成3d线然后判断3d线在不在
  • 推进自动驾驶车辆智能:基于深度学习和多模态LLM的交通标志识别与鲁棒车道检测
  • 告别复杂爬虫!Perplexity AI辅助Python网页抓取
  • 爬虫详解:Aipy打造自动抓取代理工具
  • Day113 切换Node.js版本、多数据源配置
  • RHCSA认证题目练习一(配置网络设置)
  • Centos7在yum当中遇到Could not resolve host: mirrorlist.centos.org解决方案
  • 高效读取文件中指定行段的两种方法
  • Golang 标准库errors用法