网易首页 > 网易号 > 正文 申请入驻

Java把while循环藏了24天,新手第25天才发现这6个坑

0
分享至


一个刚学Java第24天的开发者,在博客里连发了6段代码。评论区没人讨论算法优劣,全在问同一句话:「为什么我的循环跑死了?」

这不是个例。Stack Overflow 2023年调研显示,「无限循环」仍是初学者报错前三。而while循环的语法糖衣下,藏着比for循环更凶险的陷阱——条件判断在前,意味着你可能一次都进不去,也可能永远出不来。

场景1:打印5个1,变量却在偷偷变

代码看起来在重复同一件事,实际上每次都在修改计数器。

int i = 1;

while(i <= 5) {

System.out.print(1 + " ");

i++;

输出是5个1,但i从1涨到了6。很多新手误以为「打印1」和「i++」没关系,直到他们在循环外访问i,才发现值已经变了。

这个细节在调试时尤其恼人:你以为循环停在5,实际变量已经越界。数组越界异常(ArrayIndexOutOfBoundsException)常由此而来。

场景2:1到5的递增,藏着面试题的变种

把打印内容从固定值改成变量,代码突然有了「状态记忆」。

int i = 1;

while(i <= 5) {

System.out.print(i + " ");

i++;


输出1 2 3 4 5。看似基础,但面试官喜欢追问:如果去掉i++会怎样?

答案是无限循环。while的条件判断依赖i,而循环体内负责修改i——这种「条件-修改」分离的设计,让while比for循环更容易遗漏迭代步骤。for循环把初始化、条件、增量挤在一行,某种程度上是语言设计者对人类的怜悯。

场景3:奇数筛选,%运算符的第一次实战

i % 2 != 0 这行代码,新手写错的位置千奇百怪。

有人把!=写成=,结果全变偶数;有人把i++放进if里,循环次数直接减半。原博主的写法是安全的:先判断奇偶,再统一自增。

int i = 1;

while(i <= 10) {

if(i % 2 != 0) {

System.out.print(i + " ");

i++;

输出1 3 5 7 9。这里有个反直觉的点:循环跑了10次,但只输出5次。CPU做了双倍工作,这是while配合if的典型代价。追求性能时,可以直接让i += 2,但可读性会下降——产品代码里,后者更常见。

场景4:乘法表,字符串拼接的隐藏成本

System.out.println(i + " * 5 = " + i * 5) 这行,每次循环都在造新字符串。

int i = 1;

while(i <= 5) {

System.out.println(i + " * 5 = " + i * 5);


i++;

输出5行乘法表。+操作符在Java里对字符串是重载的,底层会调StringBuilder。5次循环无所谓,但如果是5万次,手动用StringBuilder拼接能省30%内存——这是LeetCode上被验证过的优化点,虽然日常业务里没人care。

原博主选了最直白的写法。对于第24天的学习者,这很合理。过早优化是万恶之源,但完全不知道有优化空间,则是另一场灾难。

场景5和6:&&与||,逻辑运算符的面试重灾区

同时被3和5整除,用&&;被3或5整除,用||——这行注释值一半面试分。

// 同时满足

if (i % 3 == 0 && i % 5 == 0)

// 满足其一

if (i % 3 == 0 || i % 5 == 0)

输出分别是15、30和3、5、6、9、10。短路求值(Short-circuit Evaluation)在这里默默工作:&&左侧为假时右侧不执行,||左侧为真时右侧跳过。这个特性被用来写防御式代码,比如if (obj != null && obj.isValid()),颠倒顺序就会空指针。

原博主没提短路求值,但代码里埋着这个伏笔。第24天的学习者大概还没遇到NPE(NullPointerException),但三个月后,这个知识点会突然从记忆里浮上来。

while vs for:什么时候该背叛直觉

Java官方教程里,while的推荐场景是「次数不确定」。比如读取网络流、等待用户输入、轮询数据库状态——这些时候你没法写i < 100,只能写while (isConnected)。

但现实中,大量本可用for的代码被写成了while。原因很 mundane:复制粘贴时,while的括号更少,改起来更快。技术债就这样一笔笔积累,直到某个凌晨,你在循环里忘了i++,服务挂了,PagerDuty响了。

原博主的6个场景全是「次数确定」型,用for循环更紧凑。但用while重写一遍,对理解控制流有帮助——就像学吉他时先练和弦再练指弹,顺序不能颠倒。

这位博主在第24天选择死磕while,评论区有人问:「第25天学啥?」博主没回复。但按照Java学习曲线的惯例,接下来可能是do-while——那个至少执行一次的怪胎,或者直接跳进for-each,开始和集合类搏斗。

你会把while循环用在确定次数的场景吗?还是坚决遵循「不确定才用while」的教条——哪怕这意味着多写三行代码?

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
体操世界冠军范忆琳:为拿金牌严控体重,我18岁才来生理期

体操世界冠军范忆琳:为拿金牌严控体重,我18岁才来生理期

懂球帝
2026-04-14 20:17:02
成都一电瓶车在高速逆行 LED屏实时预警引热议:大屏已经发展成这样了?

成都一电瓶车在高速逆行 LED屏实时预警引热议:大屏已经发展成这样了?

掌上金牛
2026-04-15 10:52:04
海军的正确用法,我只展示一次

海军的正确用法,我只展示一次

求实处
2026-04-13 19:35:03
阿里巴巴港股涨幅扩大至5%

阿里巴巴港股涨幅扩大至5%

每日经济新闻
2026-04-15 10:06:13
崔永熙绝杀大帽打服全网!谁说广东换他亏了?焦泊乔才是隐藏杀招

崔永熙绝杀大帽打服全网!谁说广东换他亏了?焦泊乔才是隐藏杀招

丁蓳解说
2026-04-15 12:43:39
不踢球却统治足球!美国资本血洗欧洲足坛:百年规则,我说改就改

不踢球却统治足球!美国资本血洗欧洲足坛:百年规则,我说改就改

曾蠃爱旅行
2026-04-13 07:40:22
张玉宁晒以自己为原型的工体TIFO照并致谢:感恩,铭记!

张玉宁晒以自己为原型的工体TIFO照并致谢:感恩,铭记!

懂球帝
2026-04-14 21:55:19
案例:北大女博士倒挂长城2个小时,目睹老公劈死,自己坠崖而亡

案例:北大女博士倒挂长城2个小时,目睹老公劈死,自己坠崖而亡

清茶浅谈
2025-01-14 18:01:31
172艘油轮挤爆墨西哥湾!谁在为美国的能源狂欢买单?

172艘油轮挤爆墨西哥湾!谁在为美国的能源狂欢买单?

环球格局观
2026-04-14 20:08:01
儿子在校遭欺凌父亲猝死在调解室,家属称学校拒绝担责,律师:若被欺凌属实,学校要承担行政、民事责任,相关责任人还可能面临处分

儿子在校遭欺凌父亲猝死在调解室,家属称学校拒绝担责,律师:若被欺凌属实,学校要承担行政、民事责任,相关责任人还可能面临处分

8099999街头巷尾
2026-04-14 11:24:09
宋庆龄年轻的时候真的太好看了,气质温柔又高级,像仙女下凡一样

宋庆龄年轻的时候真的太好看了,气质温柔又高级,像仙女下凡一样

陈意小可爱
2026-04-13 17:08:16
最新民调:过半台湾民众认同必须主动面对两岸统一问题

最新民调:过半台湾民众认同必须主动面对两岸统一问题

海峡导报社
2026-04-14 15:12:17
歌手于文华:二婚嫁头婚小伙,25年都没生孩子,如今她真的幸福吗

歌手于文华:二婚嫁头婚小伙,25年都没生孩子,如今她真的幸福吗

揽星河的笔记
2026-04-14 18:36:03
“狗不理”跌落神坛,从一天卖6万个到无人问津,它为何不火了?

“狗不理”跌落神坛,从一天卖6万个到无人问津,它为何不火了?

房产衫哥
2026-04-14 12:50:59
5月1日起,3万元成“高压线”!普通打工人、小老板、新规来了

5月1日起,3万元成“高压线”!普通打工人、小老板、新规来了

混沌录
2026-04-14 20:16:08
中国已无退路了!美军为中美选好了主战场,决心要跟中国打场大战

中国已无退路了!美军为中美选好了主战场,决心要跟中国打场大战

余塩搞笑段子
2026-04-03 10:21:46
当年被骂“风流”的央视最美女主持,48岁爆粗口:摊牌了,不装了

当年被骂“风流”的央视最美女主持,48岁爆粗口:摊牌了,不装了

乡野小珥
2026-04-15 13:06:50
日本科学家发现一种抗癌细菌,只需一针,肿瘤完全消失

日本科学家发现一种抗癌细菌,只需一针,肿瘤完全消失

Thurman在昆明
2026-04-13 14:20:10
担心的事还是发生,跑丢编制的女护士张水华,又回到了她的怪圈

担心的事还是发生,跑丢编制的女护士张水华,又回到了她的怪圈

据说说娱乐
2026-04-15 12:06:52
京港高铁雄商段河北段今起联调联试

京港高铁雄商段河北段今起联调联试

环球网资讯
2026-04-15 12:08:59
2026-04-15 13:43:00
薛定谔的BUG
薛定谔的BUG
有态度网友ytd
1398文章数 35关注度
往期回顾 全部

科技要闻

手机无死角上网?亚马逊砸百亿硬刚马斯克

头条要闻

上万美军封锁下 多艘货船成功通过霍尔木兹海峡

头条要闻

上万美军封锁下 多艘货船成功通过霍尔木兹海峡

体育要闻

三球准绝杀戴大金链:轰30+10自我救赎

娱乐要闻

曾志伟办73岁生日派对,逾百艺人到场

财经要闻

业绩失速的Lululemon:"健康"人设崩塌?

汽车要闻

海豹08内饰首秀 大满配“海王”旗舰

态度原创

教育
时尚
数码
手机
军事航空

教育要闻

413、403、375分!文华学院这3个女孩同时上岸武汉体育学院!

坏事做尽的疯女人,集体翻红了

数码要闻

EPOMAKER LUMA100矮轴“铝坨坨”三模机械键盘发售,699元

手机要闻

为什么你玩游戏觉得不舒服 李杰:手机细节毁了体验

军事要闻

万斯:对当前美伊局势进展“感到乐观”

无障碍浏览 进入关怀版