C选择结构

选择结构用来判断,使程序按照不同条件进入不同分支。

if else

if else可以根据是否符合条件进入不同的分支。

语法:

if(表达式)
{
    语句1
}
else
{
    语句2
}

判断奇数偶数

int i;

scanf("%d",&i);

if(i%2)
{
    printf("%d是奇数\n",i);
}
else
{
    printf("%d是偶数\n",i);
}

嵌套 if else

if else 每个部分的语句也可以包含if else。

int a = 0;

scanf("%d", &a);

if (a >= 0)
{
    if (a <= 100) {
        printf("%d在0~100之间\n", a);
    }
    else {
        printf("%d大于100\n", a);
    }
}
else
{
    printf("%d小于0\n", a);
}

多重if

多重if是在else又嵌套了一层if else。

int a = 0;

scanf("%d", &a);

if (a>100)
{
    printf("%d大于100\n", a);
}
else if (a < 0)
{
    printf("%d小于0\n", a);
}
else
{
    printf("%d在0~100之间\n", a);
}

悬挂else

else和最近的if配对,而不是根据缩进。

悬挂else示例

int x = 1, y = 0;
if (x == 0)
    if (y == 0)
        printf("x=0,y=0\n");
else
    printf("x!=0\n");

代码运行不输出任何内容。

正确的else

int x = 1, y = 0;
if (x == 0)
{
    if (y == 0)
    {
        printf("x=0,y=0\n");
    }
}
else
{
    printf("x!=0\n");
}

输出x!=0。

switch case

switch可以根据变量的值跳转到不同分支。

语法:

switch(表达式)
{
    case 常量值1:
        语句1
    case 常量值2:
        语句2
    case 常量值n:
        语句n
    default:
        语句默认
}

输入星期判断是工作日还是周末

    int day = 0;
    printf("请输入1~7(对应星期一~星期日):");
    scanf("%d", &day);

    switch (day)
    {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
        printf("工作日\n");
        break;
    case 6:
    case 7:
        printf("周末\n");
        break;
    default:
        printf("范围不符合\n");
        break;
    }

练习