如何用For循环替代嵌套循环生成坐标块时的If语句?
用For循环替代嵌套循环中的If语句实现换行
当然可以!完全不用依赖if判断来控制换行,咱们可以用一个只执行一次的for循环来实现同样的效果,甚至逻辑上更清晰。
先回顾下你的原始代码:外层循环控制x轴坐标,内层循环遍历y轴坐标,每输出一个坐标就检查是不是该行最后一个,是的话就换行。要替换那个if,核心是把输出整行坐标和换行的操作拆解开,用循环逻辑来触发换行,而不是条件判断。
下面是修改后的代码:
public class NestedLoops3 { public static void main(String[] args) { for(int x = 0; x < 6; x++) { // 先输出当前行的所有坐标 for(int y = 0; y < 6; y++) { System.out.print("(" + x + "," + y + ")"); } // 用一个单次执行的for循环替代原if语句完成换行 for(int lineBreak = 0; lineBreak < 1; lineBreak++) { System.out.println(); } } } }
为什么这样有效?
这个负责换行的for循环条件是lineBreak < 1,意味着它只会执行一次——刚好对应每一行坐标输出完成后需要换一次行的需求。这样既完全替代了原if(counter2==5)的功能,又符合你想用另一个for循环替换的要求。
另外补充个小优化:其实你也可以直接把System.out.println();放到外层循环的每轮末尾(不用额外循环),但既然你明确要求用for循环替代if,上面的写法就完美匹配你的需求啦。
内容的提问来源于stack exchange,提问作者Mario Gamero
相关产品推荐
相关产品推荐

