public final class Test
{
class Inner {
void test() {
if (Test.this.flag); {sample();}
}
}
private boolean flag = false;
public void sample() {System.out.println("Sample");}
public Test() {(new Inner()).test();}
public static void main(String args []) {
new Test();
}
}The result is "Sample",Why?????
{
class Inner {
void test() {
if (Test.this.flag); {sample();}
}
}
private boolean flag = false;
public void sample() {System.out.println("Sample");}
public Test() {(new Inner()).test();}
public static void main(String args []) {
new Test();
}
}The result is "Sample",Why?????
改为:
if (Test.this.flag) {sample();}
中间的分号去掉。
改为:
if (Test.this.flag) {sample();}
中间的分号去掉。
在执行 { sample(); } //这是一个代码块 根if()没有任何的逻辑关系
// 不管 if()真假 {} 都会执行
“为什么我运行后什么都没有显示的!”因为 你把 “;” 去掉 if() 就和 {} 代码块 有逻辑关系了 又因为 flag=false; 所以 {} 代码块不会被执行 因此 就是没有显示了 :)