为何程序完全无法进入for循环?附相关代码示例
为什么你的程序完全无法进入for循环?
嗨,咱们直接揪出核心问题——你的for循环条件写得不对呀!
先看这段循环代码:
for(int i=0; i==j; i++) { // 循环体内容 }
问题根源
for循环的执行逻辑是这样的:
- 先初始化
i=0 - 判断
i==j是否成立,只有条件成立时才会进入循环体 - 执行完循环体后,执行
i++,再回到第二步重新判断
而你的代码里,j是n/2,n又是arr.length-1。除非你的数组长度刚好是2(此时n=1,j=0),否则j的值肯定大于0。这时候初始的i=0和j不相等,第一次判断条件就不满足,自然直接跳过整个循环了。
怎么调整?
得根据你的实际需求修改循环条件:
- 如果是想从
i=0遍历到i=j(包含j这个位置),把条件改成i <= j - 如果是想循环
j次,就改成i < j - 要是你本来想遍历整个数组,那应该用
i < arr.length或者i <= arr.length-1
举个修改后的示例:
// 遍历0到j的所有索引 for(int i=0; i <= j; i++) { System.out.println(searchElement); System.out.println(arr[j]); // 其他业务逻辑 }
内容的提问来源于stack exchange,提问作者venus
相关产品推荐
相关产品推荐

