Java 将符号从for循环向下传递到if语句
for循环中的符号似乎是循环本身的局部符号。 是否有任何方法可以将符号当前表示的内容的信息向下传递到例如if语句 例如,这会生成一个错误:Java 将符号从for循环向下传递到if语句,java,if-statement,for-loop,Java,If Statement,For Loop,for循环中的符号似乎是循环本身的局部符号。 是否有任何方法可以将符号当前表示的内容的信息向下传递到例如if语句 例如,这会生成一个错误: int[] myAry = {1, 2, 3}; for (int i : myAry) if (i == 2); System.out.println(i); 但这并不是: int[] myAry = {1, 2, 3}; for (int i : myAry) if (i == 2); System.out.println("M
int[] myAry = {1, 2, 3};
for (int i : myAry)
if (i == 2);
System.out.println(i);
但这并不是:
int[] myAry = {1, 2, 3};
for (int i : myAry)
if (i == 2);
System.out.println("Match found!");
这两个代码段都是错误的,应该是:
if (i == 2)
System.out.println(i);
及
条件之后不应该有分号
第一个代码段导致System.out.printlni之后的编译错误;在循环之外,因此i未定义
第二个代码段不会导致编译错误,因为它不会尝试访问i,但无论if条件的计算结果如何,它都会执行,因为它在for循环之外。某些方式:
如果希望不使用大括号,请确保在for之后使用单个可执行块
int[] myAry = {1, 2, 3};
for (int i : myAry)
if (i == 2) // Remove the semi-colon. Seems inadvertently added.
System.out.println(i);
使用大括号
int[] myAry = {1, 2, 3};
for (int i : myAry){
if (i == 2); // Assuming this was purposeful, seems unlikely though.
System.out.println(i);
}
您的第一个代码基本上是:
int[] myAry = {1, 2, 3};
for (int i : myAry){
if (i == 2){}
}
System.out.println(i);
所以,事实上,我不存在于你试图打印它的范围内。要么在for循环之外声明i,要么按照需要的方式放置括号。您的代码似乎非常糟糕。如果不打算使用这些if语句,为什么还要添加它们?你知道分号终止了if语句,我希望?…我很愚蠢。我的大脑一半是python一半是java atm。谢谢你澄清了这一点,现在变得更有意义了。
int[] myAry = {1, 2, 3};
for (int i : myAry){
if (i == 2){}
}
System.out.println(i);