Java 为什么在条件应该为false时执行for循环?

Java 为什么在条件应该为false时执行for循环?,java,for-loop,Java,For Loop,我有以下代码: public int maxSpan(int[] nums) { int maxSpan = 0; int span; int j; for(int i = 0; i < nums.length; i++) { for(j = nums.length - 1; nums[i] != nums[j]; j--); span = 1 + j - i; if(

我有以下代码:

    public int maxSpan(int[] nums) {
      int maxSpan = 0;
      int span;
      int j;
      for(int i = 0; i < nums.length; i++)
      {
         for(j = nums.length - 1; nums[i] != nums[j]; j--);
         span = 1 + j - i;
         if(span > maxSpan)
            maxSpan = span;
      }
      return maxSpan;
   }
public int maxSpan(int[]nums){
int maxSpan=0;
int span;
int j;
对于(int i=0;i最大跨度)
最大跨度=跨度;
}
返回最大跨度;
}
编辑:我意识到有一个分号而不是{,这就是为什么它起作用的原因,所以现在我的问题是,这是一个糟糕的做法吗?
提前感谢!

For循环后的分号指示行停止。循环运行,但不执行任何命令。请尝试以与第一个For循环相同的方式格式化第二个For循环,当nums[i]==nums[j]时,它应跳过这些命令

public int maxSpan(int[] nums) {
  int maxSpan = 0;
  int span;
  int j;
  for(int i = 0; i < nums.length; i++)
  {
     for(j = nums.length - 1; nums[i] != nums[j]; j--)
     {
         span = 1 + j - i;
         if(span > maxSpan)
            maxSpan = span;
     }
  }
  return maxSpan;
}
public int maxSpan(int[]nums){
int maxSpan=0;
int span;
int j;
对于(int i=0;i最大跨度)
最大跨度=跨度;
}
}
返回最大跨度;
}

for循环后面的分号应该删除,因为现在有不平衡的大括号