C语言笔记----选择结构

旧街凉风 提交于 2020-01-15 06:48:14

一,if语句:
1.单纯的if:

# include <stdio.h>

int main()
{
    int i;

    scanf("%d",&i);

    if(i ==1) printf("i为 1\n");

    return 0;
}

if就是如果的意思嘛,它的格式是
if(条件)
{
语句;
}
(当你只在其中写一条语句时,是可以不用花括号的,但是多条语句时,必须要用花括号,其实无论是几条语句最好都把括号带上,这样会使程序看起来更清晰一些)
即当if后面的括号里的条件成立时,执行后面的语句,如上面代码所示,如果输入的i是1,则会执行printf(“i为 1\n”);语句,在屏幕上会显示,i为 1
如果输入的i非1,则程序无输出结果。

2.if…else语句:

# include <stdio.h>

int main()
{
    int i;

    scanf("%d",&i);

    if(i ==1) printf("i为 1\n");
    else printf("i非 1\n");

    return 0;
}

else 是否则的意思,
语句格式为
if(条件) 语句1;
else 语句2;
如上述代码,当输入1,条件成立,则执行语句1;当输入…比如说2时,条件不成立,则执行与条件相对相反的else语句,执行语句2;
(这种相对相反的关系被称为布尔型,在以后你可能经常会看到这个名词。)

3.if…else if…else语句:
else if是…另一种条件下的意思,
它的格式为:
if(条件 1) 语句 1;
else if(条件 2) 语句 2;
else if(条件 3) 语句 3;
else if(条件 4) 语句 4;
:
else 语句 n;
(只要需要,你想写几个else if就可以写几个else if)

# include <stdio.h>

int main()
{
    int i;

    scanf("%d",&i);

    if(i ==1) printf("i为 1\n");
    else if(i == 2) printf("i为 2\n");
    else if(i == 3) printf("i为 3\n");
    else printf("i不是1也不是2,不是3,是其它的整数\n");

    return 0;
}

二,switch语句:

# include <stdio.h>

int main()
{
    int i;

    scanf("%d",&i);

    switch(i)
    {
        case 1:
            printf("哈哈\n");
            break;
        case 2:
            printf("嘿嘿\n");
            break;
        case 3:
            printf("哼哼\n");
            break;
        default:
            printf("啦啦\n");
    }

    return 0;
}

它的格式是:
switch(字符的变量或是数字的变量)
{
case 数字或字符:
语句1;
break;
case 数字或字符:
语句 2;
break;
:
default:
语句 n;
break;
}
case的意思是条件,就是说switch后面的括号中变量中存的是什么,
default的意思是默认,当case 们都匹配不上switch后的变量时,就会执行default中的语句。
break是打破的意思,意思是跳出当前区域,这里指的是switch,break是必要的,因为如果你不使用break,可能会出现以下情况:
如:

# include <stdio.h>

int main()
{
    int i;

    scanf("%d",&i);

    switch(i)
    {
        case 1:
            printf("哈哈\n");
            break;
        case 2:
            printf("嘿嘿\n");
        case 3:
            printf("哼哼\n");
            break;
        default:
            printf("啦啦\n");
    }

    return 0;
}

我们删去了case 2:中的break,你在运行的过程中就会发现,当输入"2"时,会在屏幕上显示,
嘿嘿
哼哼
竟然把case 3中的语句也执行了!!!我们可以大胆猜测switch的运行原理,就是当swtich接收到变量的值时,会在众多的case 中进行比对,当找到匹配的case 进入执行该语句,然后像滑滑梯一样往下执行,如果没有break拦着,就会将该case以下的语句全部执行。
看起来很麻烦的样子,但是,swtich不常用,我们有逻辑更清晰的if语句,用switch干什么嘛,是吧?
欢迎提问哦。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!