Java技术问题:如何配置for循环避免变量累加值超过100?
解决Java累加不超过100的循环问题
嘿,我来帮你梳理下问题所在,然后给出可行的解决方案!
首先,你的原代码有两个核心问题:
- 只在循环外读取了一次用户输入的整数,所以每次循环都在累加同一个值,这自然会很快超过100;
- for循环的终止条件
x < 99太死板,没有考虑累加后的实际值是否接近100,逻辑上应该是累加值未达到100时继续循环。
根据你的需求——每次获取用户输入的整数并累加,直到累加值不超过100,我们可以这样修改代码:
import java.util.Scanner; public class AccumulateTo100 { public static void main(String[] args) { Scanner input = new Scanner(System.in); int x = 0; // 当累加值还没到100时继续循环 while (x < 100) { System.out.print("请输入一个整数:"); int in = input.nextInt(); // 判断累加后是否会超过100 if (x + in > 100) { // 只加剩下的部分,刚好到100 x = 100; System.out.println("累加后达到100,停止循环"); } else { x += in; System.out.println("当前累加值:" + x); } } input.close(); } }
当然,如果你坚持要用for循环(虽然while循环在这里更直观),也可以调整成这样:
import java.util.Scanner; public class AccumulateTo100WithFor { public static void main(String[] args) { Scanner input = new Scanner(System.in); int x = 0; // for循环的初始化、条件、更新都可以灵活调整 for (; x < 100; ) { System.out.print("请输入一个整数:"); int in = input.nextInt(); if (x + in > 100) { x = 100; System.out.println("累加后达到100,停止循环"); } else { x += in; System.out.println("当前累加值:" + x); } } input.close(); } }
关键调整点说明:
- 将
int in = input.nextInt()放到循环内部,确保每次循环都能获取新的用户输入; - 把循环条件改为
x < 100,明确只有当累加值未达到100时才继续; - 增加了累加前的判断,避免超过100,确保最终累加值刚好停在100。
这样修改后,程序就会按照你的要求,每次获取用户输入并累加,直到刚好达到100就停止啦!
内容的提问来源于stack exchange,提问作者user9578589
相关产品推荐
相关产品推荐

