Java 如果在a里面,有什么问题吗? for(inti=0;i

Java 如果在a里面,有什么问题吗? for(inti=0;i,java,Java,在内部if语句后面有一个分号 for(int i =0; i<8;i++){ for(int j =0; j<8;j++){ Ratsuk.getNewtablero().getMesa(i,j).setBackground(matrizcolor[i][j]); if (Ratsuk.getNewtablero().getMesa(i,j).getBackground()==Color.lightGray); Ratsuk.getNewtablero()

在内部if语句后面有一个分号

for(int i =0; i<8;i++){
  for(int j =0; j<8;j++){
    Ratsuk.getNewtablero().getMesa(i,j).setBackground(matrizcolor[i][j]);
    if (Ratsuk.getNewtablero().getMesa(i,j).getBackground()==Color.lightGray);
    Ratsuk.getNewtablero().getMesa(i,j).setEnabled(false);
  }
}
这将导致每次执行下一行。请记住,编译器将关联(1)单个语句或(2)带有任何if语句的单个块。在这种情况下,编译器将单个语句与该if语句相关联,但该语句只是一个分号,实际上什么也不做。在分号语句“执行”后,程序通过执行下一行继续正常运行:

if (Ratsuk.getNewtablero().getMesa(i,j).getBackground()==Color.lightGray);

不管if语句的值是真是假。删除分号,您的问题就会得到解决。

如果您能修复缩进,它将帮助我们了解这里发生了什么。这个问题似乎离题了,因为它是一个打字错误是的,我错了,我犯了一个非常愚蠢的错误--,并使用
等于来比较颜色。@M我想如果在优化阶段会被删除,但我不确定。“GrijjHhanhanhani,我怀疑不是,除非编译器能够明确地确定调用链中没有任何方法有任何副作用。”JoachimIsaksson HMM得到了,优化是否考虑到标准的库函数有一些标志选项调用?
Ratsuk.getNewtablero().getMesa(i,j).setEnabled(false);