现在的位置: 首页 > 03 分支结构 > 正文

选择结构的嵌套

2013年08月13日 03 分支结构 ⁄ 共 516字 ⁄ 字号 选择结构的嵌套已关闭评论

选择结构的嵌套

2011_3_C_16:阅读程序

1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
int main(int argc, char *argv[])
{
    int x=1,y=0;
    if (!x) y++;
    else if(x==0)
    if (x) y+=2;
    else y+=3;
    printf("%d\n",y);
    return 0;
}

如果使用C-Free进行代码格式化,就得到下面的代码,结构清晰了很多。

1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
int main(int argc, char *argv[])
{
    int x=1,y=0;
    if (!x) y++;
    else if(x==0)
        if (x) y+=2;
        else y+=3;
    printf("%d\n",y);
    return 0;
}

本题关键是 if-else 的匹配, else总是和最近的 if 相匹配

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
int main(int argc, char *argv[])
{
    int x=1,y=0;
    if (!x) y++;
    else if(x==0) {
        if (x) y+=2;
        else y+=3;
    }
    printf("%d\n",y);
    return 0;
}

本题主要考察的知识点为if语句的嵌套,变量x的值为1,既不满足表达式!x为真,也不满足表达式x==0,故不执行if语句,而直接执行printf函数输出y的值0。

抱歉!评论已关闭.