else if语句的自动除交叉功能

else if语句用于条件不交叉的情况,在每种不交叉的条件下分别执行不同的语句。

条件不交叉就是条件间没有交集,就是不重复。

比如莎士比亚《哈姆雷特》中的名句:“To be, or not to be: that is the question.”

生存和毁灭就是不交叉条件。

一个问题来了,这种不交叉需不需要人为保证呢?

答案是不需要,因为程序能自动排除掉交叉情况。

比如这道掷色子题:输入1,2,3,输出small;输入4,5,6,输出large

#include
int main(){
    int n;
    scanf("%d", &n);
    if(n<=3){
        printf("small\n");
    }
    else if(n<=6){
        printf("large\n");
    }
    else
    {
        printf("error!\n");
    }
}

上面的代码是没问题的。

如果输入3,虽然也满足else if(n<=6)中的条件,但是因为在他前面的语句if(n<=3)已经判断了这一条件,在else if(n<=6)就会自动排除掉小于等于3的情况。

你可能感兴趣的:(信息学奥赛,算法)