Why can't variables be declared in an if statement?

前端 未结 13 1833
感动是毒
感动是毒 2020-12-05 10:18

The following Java code does not compile.

int a = 0;

if(a == 1) {
    int b = 0;
}

if(a == 1) {
    b = 1;
}

Why? There can be no code pa

13条回答
  •  慢半拍i
    慢半拍i (楼主)
    2020-12-05 11:10

    Why? There can be no code path leading to the program assigning 1 to b without declaring it first.

    You are right, but the compiler doesn't know that. The compiler does not execute the code. The compiler only translates to bytecode without evaluating expressions.

提交回复
热议问题