不明白这两个程序之间的区别,一个是if-else第二个是if-else-if

Mil*_*ita 0 java

你好,我从我的书中得到了关于if-else-if语句的代码

{
    int mesec = 4; // April
    String season;

    if(mesec==12 || mesec==1 || mesec==2)
        season= "winter";
    else if (mesec==3 || mesec==4 || mesec==5)
        season= "spring";
    else if (mesec==6 || mesec==7 || mesec==8)
        season= "summer";
    else if (mesec ==9 || mesec ==10 || mesec ==11)
        season= "autumn";
    else
        season = "wrong month";

    System.out.println("When it is April, it is "+season);
}
Run Code Online (Sandbox Code Playgroud)

当我使用if-else-if语句时,此代码可以正常工作,但是当我尝试仅使用if-else时

public static void main(String args[])
{
    int mesec = 4; // April
    String season;

    if(mesec==12 || mesec==1 || mesec==2)
        season= "winter";
    if (mesec==3 || mesec==4 || mesec==5)
        season= "spring";
    if (mesec==6 || mesec==7 || mesec==8)
        season= "summer";
    if (mesec ==9 || mesec ==10 || mesec ==11)
        season= "autumn";
    else
        season = "wrong month";

    System.out.println("When it is April, it is "+season);
}
Run Code Online (Sandbox Code Playgroud)

我总是错误的输出是"当它是4月,这是错误的月份"

当我们使用if-else-if变量季节保存哪个季节时,但是当我们只使用if-else时它只保存来自else语句的季节?任何人都可以解释我的问题是什么?

mpo*_*llo 5

else第二个程序中的陈述仅适用于最后一个if:

if (mesec ==9 || mesec ==10 || mesec ==11)
Run Code Online (Sandbox Code Playgroud)

因此,只有当月份是9,10或11时,它才会按预期的方式工作.