目录
⚽️一、为啥要学 Java 的循环
🏀二、初相识:for、while、do - while 常规用法
🏈(一)for 循环:心中有数的 “计数器”
⚾️(二)while 循环:伺机而动的 “守望者”
🎾(三)do - while 循环:先干再说的 “实干家”
🏐三、重头戏:死循环登场
🏉(一)啥是死循环
⛳️(二)for 死循环:简洁的永动机
🏌(三)while 死循环:执着的守护者
🏓(四)do - while 死循环:倔强的践行者
🏸四、死循环的 “小心机” 与实战运用
🏒(一)死循环的风险:别让程序 “失控”
⛷(二)巧用死循环:创造无限可能
⛸五、一起动手敲敲代码
家人们,今天我想跟你们唠唠我在学 Java 编程的时候碰到的几个特别基础但又超级重要的东西 ——for 循环、while 循环还有 do - while 循环。
❤️一、为啥要学 Java 的循环
循环嘛,重要嘛
❤️二、初相识:for、while、do - while 常规用法
💛(一)for 循环:心中有数的 “计数器”
咱先看 for 循环,它长得有点像个小工厂,结构特别清晰。语法是这样的:
for (初始化; 循环条件; 迭代语句) {
// 循环体,也就是要重复做的事儿
}
比如说,咱们要算 1 到 100 的累加和,用 for 循环写就特简单:
public class ForLoopExample {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i;
}
System.out.println("1到100的累加和是:" + sum);
}
}
💚
这里呢,“int i = 1” 就是初始化,告诉程序从 1 开始;“i <= 100” 是循环条件,只要 i 没超过 100 就接着循环;“i++” 是迭代语句,每次循环完 i 就加 1;花括号里的 “sum += i” 就是循环体,把 i 的值累加到 sum 上。程序就这么一步步地,稳稳当当把 1 到 100 都加起来了,最后输出结果 5050。是不是感觉 for 循环特别有条理,就像个心里有数的计数器,知道啥时候开始,啥时候结束,每一步都规划得明明白白。
💚
💙(二)while 循环:伺机而动的 “守望者”
再看看 while 循环,它的语法像这样:
初始化;
while (循环条件) {
// 循环体
迭代语句;
}
举个例子,咱们来判断一个数是不是质数,代码如下:
public class WhileLoopExample {
public static void main(String[] args) {
int num = 17;
int i = 2;
boolean isPrime = true;
while (i < num) {
if (num % i == 0) {
isPrime = false;
break;
}
i++;
}
if (isPrime) {
System.out.println(num + "是质数");
} else {
System.out.println(num + "不是质数");
}
}
}
这里先初始化 “int num = 17”(要判断的数)和 “int i = 2”(用来除 num 的数),“while (i < num)” 就是循环条件,只要 i 比 num 小就继续循环。循环体里判断 num 能不能被 i 整除,如果能,就说明不是质数,把 “isPrime” 设为 false 然后跳出循环,要是一直没找到能整除的,那 num 就是质数。while 循环就像是个守望者,守着那个循环条件,条件满足就一直干活,它和 for 循环有点像,但在有些不知道要循环多少次,只知道结束条件的时候用起来更顺手。
💜(三)do - while 循环:先干再说的 “实干家”
最后讲讲 do - while 循环,语法是:
初始化;
do {
// 循环体
迭代语句;
} while (循环条件);
它有个特点,就是不管咋样,循环体至少先执行一次。咱们来写个简单的猜数字游戏代码:
import java.util.Scanner;
public class DoWhileLoopExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int target = 50;
int guess;
do {
System.out.println("猜一个 1 到 100 之间的数字:");
guess = scanner.nextInt();
if (guess > target) {
System.out.println("猜大了");
} else if (guess < target) {
System.out.println("猜小了");
}
} while (guess!= target);
System.out.println("恭喜你,猜对了!");
scanner.close();
}
}
这里 “int target = 50” 是要猜的目标数字,“do” 后面的循环体里先让玩家输入猜测的数字,然后判断大小给出提示,“while (guess!= target)” 是循环条件,只要没猜对就继续循环。哪怕玩家第一次就蒙对了,循环体里的输入提示代码也至少执行一次,这就是 do - while 循环的 “先干再说” 风格,在需要先执行一次操作,再看要不要继续的场景里特别好用。
❤️三、重头戏:死循环登场
💛(一)啥是死循环
家人们,想象一下家里的风扇,要是开关坏了,它就一直转个不停,再或者火车在铁轨上,刹车失灵,一路狂奔不停下,这在生活里可就是故障啦。在程序里,死循环差不多也是这么个事儿,就是循环一直停不下来,不停地重复执行循环体。
💚(二)for 死循环:简洁的永动机
来看看 for 循环怎么写出死循环,最简单的就是 for (;;),代码如下:
public class ForDeadLoop {
public static void main(String[] args) {
for (;;) {
System.out.println("我停不下来啦,一直在跑!");
}
}
}
上面这两种截图都可以达到死循环的效果!!!
这里没有写循环条件和迭代语句,程序跑到这就蒙圈了,不知道啥时候该停,就只能一直执行循环体里打印那句话,像个永动机似的。在实际应用里,比如服务器程序,有时候就得用这种 for 死循环,让服务器一直处于监听客户端请求的状态,只要服务器不关,它就得一直候着,随时响应。
💙(三)while 死循环:执着的守护者
while 循环写出死循环也不难,while (true) 就行,看下面代码:
public class WhileDeadLoop {
public static void main(String[] args) {
while (true) {
System.out.println("我坚守岗位,永不离岗!");
}
}
}
因为 “true” 这个条件永远都成立,所以循环就一直持续下去,不停歇。在游戏开发里,有个用处,像游戏运行时要一直实时渲染画面,保证玩家看到流畅的场景,就得用 while 死循环,让渲染代码一直跑,只要游戏没退出,画面就一直更新。
💙(四)do - while 死循环:倔强的践行者
do - while 循环的死循环写法是 do {} while (true),代码示例:
public class DoWhileDeadLoop {
public static void main(String[] args) {
do {
System.out.println("我先干一票,然后一直干下去!");
} while (true);
}
}
和前面说的 do - while 特性一样,先执行一次循环体,打印那句话,然后因为 while 后面是 “true”,就一直循环,停不下来。在一些监控系统里,比如要持续采集某个设备的数据,就可以用这个,先采集一次,然后不间断地采集后续数据,保证数据的连贯性。
💜四、死循环的 “小心机” 与实战运用
💙(一)死循环的风险:别让程序 “失控”
虽说死循环能派上用场,但要是不小心,那可就捅娄子了。要是一个普通的小程序不小心弄出个死循环,可能电脑就会变得特别卡,程序无响应,因为它一直在占用系统资源,疯狂地重复执行。在开发的时候,咱们得小心,要是写了死循环,得有个后手,比如设置超时机制,要是循环执行太久,就强制退出;或者实时监控系统资源占用,一旦发现不对劲,赶紧调整。要是在团队项目里,写了个死循环还没处理好,队友们估计得找你 “谈心” 了,哈哈。
❤️(二)巧用死循环:创造无限可能
不过只要用得好,死循环能帮咱们干好多酷炫的事儿。比如说,咱们写个文档编辑软件,想要实现自动保存功能,就可以用个 while 死循环,每隔一段时间就触发保存操作,只要软件开着,就一直守护文档,不怕数据丢失。
💛五、一起动手敲敲代码
家人们,光说不练假把式,我给你们几个简单的练习。比如说,用 for 死循环打印个三角形图案,像这样
public class ForDeadLoopPractice {
public static void main(String[] args) {
for (;;) {
for (int i = 0; i < 5; i++) {
System.out.print("*");
}
System.out.println();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
这里外层的 for 死循环保证一直运行,内层循环打印 5 个 “*” 然后换行,再用 “Thread.sleep (1000)” 让程序暂停 1 秒,这样就能看到每隔 1 秒打印一行 “*****”,像个闪烁的星星条。
还有个模拟持续输入场景的,用 do - while 死循环:
import java.util.Scanner;
public class DoWhileDeadLoopPractice {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
do {
System.out.println("请输入点什么,输入'exit'退出:");
String input = scanner.nextLine();
if (!input.equals("exit")) {
System.out.println("你输入的是:" + input);
}
} while (true);
scanner.close();
}
}
💙💙💙💙
这个代码只要用户不输入 “exit”,就一直让用户输入内容并打印确认,像个永不疲倦的小秘书。你们动手敲敲这些代码,看看运行效果,要是想玩点花样,试着改改代码,看看会发生什么变化,说不定就能发现编程的新乐趣啦!要是碰到啥问题,随时来找我唠唠,咱一起进步!
❤️❤️❤️❤️