如何在Java的for循环中定义无限循环条件?
使用for循环实现持续输入直到10的倍数的方案
你当前的代码已经能实现需求,不过可以做一些优化让代码更简洁清晰:
现有代码分析
你写的这段逻辑是可行的:
Scanner sc = new Scanner(System.in); int n; for(int i = 1;true;i++) { n = sc.nextInt(); if (n % 10 == 0) { break; } } System.out.println("Wake up to reality !");
这里用true作为循环条件,会让for循环持续执行,直到输入数字是10的倍数时触发break终止循环。但循环变量i在这里没有实际用途,完全可以省略。
优化后的写法
Java里标准的无限for循环写法是省略所有循环表达式,语义更明确:
Scanner sc = new Scanner(System.in); int n; // 无限for循环,省略初始化、条件、增量表达式 for (;;) { System.out.print("请输入数字(输入10的倍数结束):"); n = sc.nextInt(); if (n % 10 == 0) { break; } } sc.close(); // 关闭Scanner避免资源泄漏 System.out.println("Wake up to reality !");
这种写法直接表明这是一个无终止条件的循环,完全依赖内部逻辑触发break结束。另外添加了输入提示,能提升用户体验,最后加上sc.close()可以避免资源泄漏问题。
内容的提问来源于stack exchange,提问作者Sanskar Kumar
相关产品推荐
相关产品推荐

