JavaScript如何避免For循环重复输出false,仅返回单次匹配结果
解决方法
你可以通过两种方式避免频繁输出False,只在最后输出一次结果:
方法一:直接判断(最简洁)
既然循环的范围是i从0到29,那根本不需要循环,直接检查随机生成的a是否落在这个区间里就行:
let min = 20; let max = 50; let a = Math.floor(Math.random() * (max - min)) + min; // 直接判断a是否在0到29之间 console.log(a >= 0 && a < 30 ? "True" : "False");
方法二:用标志变量控制输出(保留循环场景)
如果一定要保留循环逻辑,可以先定义一个标志变量记录是否找到匹配项,循环结束后再统一输出结果:
let min = 20; let max = 50; let a = Math.floor(Math.random() * (max - min)) + min; let isMatch = false; // 标志变量 for (let i = 0; i < 30; i++) { if (i === a) { isMatch = true; break; // 找到匹配就跳出循环 } } // 循环结束后再输出结果 console.log(isMatch ? "True" : "False");
两种方法都只会输出一次True或False,不会在匹配前反复输出False。
内容的提问来源于stack exchange,提问作者Gogliko Sixarulidze
相关产品推荐
相关产品推荐

