Java中如何限制for循环执行时的消息打印次数?
你修改finalvalue不生效的核心原因是混淆了循环变量的终止阈值和循环执行次数两个概念。原循环的终止条件为i <= finalvalue,循环总次数由初始值initialvalue、步长increase、终止阈值finalvalue三者共同决定:比如步长为0.5时,i从1涨到11会执行21次,自然无法达到限制11次输出的要求。
解决方案
新增整数计数器限制最大循环次数,同时保留原有i的范围判断逻辑,两个终止条件取最先触发的生效即可:
// 定义最大打印行数 int maxPrintLines = 11; for (double i = initialvalue; i <= finalvalue && maxPrintLines > 0; i = i + increase, maxPrintLines--) { System.out.println(tablevalue + "*" + i + "=" + tablevalue * i); }
逻辑说明
- 每次循环结束后计数器自动减1,计数器归0时无论i是否达到
finalvalue,都会直接终止循环,确保输出行数不超过11行 - 如果i先达到
finalvalue,循环也会正常终止,不会出现数据范围不足11行时还继续执行的问题 - 如果你的需求是哪怕i的取值范围不足,也要强制打印11行,只需要删除条件中的
i <= finalvalue &&即可
内容的提问来源于stack exchange,提问作者AxlWallride
相关产品推荐
相关产品推荐

