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

前端 未结 13 1821
感动是毒
感动是毒 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条回答
  •  鱼传尺愫
    2020-12-05 10:45

    Just for completeness sake: this one works as well (explanation is scoping, see the other answers)

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

    Due to scoping, b will only be accessible inside the if statements. What we have here are actually two variables, each of which is just accessible in their scope.

提交回复
热议问题