分支和循环语句-C语言(初阶)

目录

一、什么是语句

二、分支语句

        2.1 if语句

        2.2 switch语句

三、循环语句

        3.1 while循环

        3.2 for循环

        3.3 do...while循环


一、什么是语句

        C语言语句有五类:表达式语句、函数调用语句、控制语句、复合语句、空语句

        控制语句用于控制程序的执行流程,来实现程序的各种结构方式。C语言有三种结构:顺序结构、选择结构、循环结构,有九种控制语句,可以分为三类:条件判断语句(分支语句):if语句和switch语句;循环语句:do while语句、while语句和for语句;转向语句:break语句、goto语句、continue语句和return语句

二、分支语句

        2.1 if语句

        if语句的语法结构

        if(表达式)        //表达式为真,则执行语句,C语言中,0为假,非0为真

        {

                语句;

        }

        if(表达式)

        {

                语句;

        }

        else        //else和它离的最近的if匹配

        {

                语句;

        }

        //多分支

        if(表达式)

        {

                语句;

        }

        else if(表达式)

        {

                语句;

        }

        else

        {

                语句;

        }

        示例

#include <stdio.h>
int main()
{
        int age = 0;
        scanf("%d", &age);
        if(age<18)
        {
                printf("未成年\n");
        }
}

#include <stdio.h>
int main()
{
        int age = 0;
        scanf("%d", &age);
        if(age<18)
        {
                printf("未成年\n");
        }
        else
        {
                printf("成年\n");
        }
}

#include <stdio.h>
int main()
{
        int age = 0;
        scanf("%d", &age);
        if(age<18)
        {
                printf("少年\n");
        }
        else if(age>=18 && age<30)
        {
                printf("青年\n");
        }
        else if(age>=30 && age<50)
        {

                printf("中年\n");
        }
        else if(age>=50 && age<80)
        {
                printf("老年\n");
        }
        else
        {
                printf("老寿星\n");
        }
}

        2.2 switch语句

        switch也是一种分支语句,常用于多分支情况。

        比如出入一个数字,输出对应的星期

        switch语句

switch(表达式)

{

        语句项;

}

        语句项

case 整形常量表达式:
                语句;

        在switch语句中,我们没办法直接实现分支,搭配break使用才能实现真正的分支。
        示例

#include <stdio.h>
int main()
{
        int day = 0;
        switch(day)
        {
                case 1:
                        printf("星期一\n");
                        break;                //break语句是把多个语句项划分为不同的分支部分
                case 2:
                        printf("星期二\n");
                        break;
                case 3:
                        printf("星期三\n");
                        break;
                case 4:
                        printf("星期四\n");
                        break;
                case 5:
                        printf("星期五\n");
                        break;
                case 6:
                        printf("星期六\n");
                        break;
                case 7:
                        printf("星期天\n");
                        break;
        }
        return 0;
}

        如果要求输入数字1-5,输出weekday,输入数字6-7,输出weekend。则有以下代码

#include <stdio.h>
int main()
{
        int day = 0;
        switch(day)
        {
                case 1:

                case 2:

                case 3:

                case 4:

                case 5:
                        printf("weekday\n");
                        break;
                case 6:
                case 7:
                        printf("weekend\n");
                        break;
        }
        return 0;
}

        如果表达的值与所有的case标签的值都不匹配,可以使用default标签,当 switch 表达式的值并不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行,每个switch语句中只能出现一条default子句。

        示例

#include <stdio.h>
int main()
{
        int day = 0;
        switch(day)
        {
                case 1:
                        printf("星期一\n");
                        break;              

                case 2:
                        printf("星期二\n");
                        break;
                case 3:
                        printf("星期三\n");
                        break;
                case 4:
                        printf("星期四\n");
                        break;
                case 5:
                        printf("星期五\n");
                        break;
                case 6:
                        printf("星期六\n");
                        break;
                case 7:
                        printf("星期天\n");
                        break;

                default:

                        printf("输入不合法\n");

                        break;
        }
        return 0;
}

三、循环语句

        当一个操作要多次重复执行时,就使用循环。

        3.1 while循环

while(表达式)

{
        循环语句;

}

        示例:打印1-10的数字

#include <stdio.h>
int main()
{
        int i = 1;
        while(i<=10)
        {
                printf("%d ", i);
                i = i+1;
        }
        return 0;
}

        

        while中的break

#include <stdio.h>
int main()
{
        int i = 1;
        while(i<=10)
        {
                if(i == 5)
                break;        //在循环中遇到break,直接终止循环

                printf("%d ", i);
                i = i+1;
        }
        return 0;
}

         

        while中的continue

#include <stdio.h>
int main()
{
        int i = 1;
        while(i<=10)
        {
                if(i == 5)

               {

                      i = i+1;

                     //continue终止本次循环,直接跳转到while的判断部分,进行下一次循环的判断
                    continue;

                }
                printf("%d ", i);
                i = i+1;
        }
        return 0;
}

        

        3.2 for循环

for(表达式1; 表达式2; 表达式3)
{

        循环语句;

}

        表达式1初始化循环变量,表达式2条件判断,判断何时循环终止,表达式3调整循环条件。

        示例 打印1-10的数字

#include <stdio.h>
int main()
{
        int i = 0;
        for(i=1; i<=10; i++)
        {
                printf("%d ", i);
        }
        return 0;
}

        执行流程图

        

         break和continue在for循环和在while循环中的作用相同。

        3.3 do...while循环

        do
        {

                循环语句;

        }
        while(表达式);

        执行流程图

        

         特点:循环至少执行一次,使用场景有限,不经常使用。

猜你喜欢

转载自blog.csdn.net/qq_64668629/article/details/132420379