分支和循环语句

本文详细介绍了编程中的分支语句,包括if单分支、双分支和多分支,以及switch语句,强调了default子句的作用。同时,文章涵盖了循环语句的三大类型:while、for和do...while,讲解了break和continue在循环中的应用,以及不同循环结构的特点和使用场景。
摘要由CSDN通过智能技术生成

分支和循环语句

1、分支语句


1.1 if语句

语句结构:

if(表达式)
    语句:
if(表达式)
    语句1:
else
    语句2:
//多分支
if(表达式)
    语句1:
esle if(表达式)
    语句2:
else
    语句3:

0表示假,非0表示真。

表达式的结果为真,则执行语句。

示例:

#include <stdio.h>
int main()
{
    int age = 0;
    scanf("%d",\n);
    if(age<18)
        printf("未成年\n");
    else if(age<28);
        printf("青年\n");
    else if(age<38);
        printf("壮年\n");
    else if(age<58);
        printf("中年\n");
    else
        printf("老年\n");

    return 0;
}

如果条件成立,要执行多条语句时,将要执行语句,用{}括起来。

#include <stdio.h>
int main()
{
    if(表达式)
    {
        语句列表1;
    }
    else
    {
        语句列表2;
    }
    return 0;
}

❗️ else是和它最近的if匹配的。

1.2 switch语句

在switch语句中,我们没办法直接实现分支,需要搭配break来实现真正的分支。
例如:

#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;        
    }
    return 0;
}
#include <stdio.h>
int main()
{
    int day = 0;
    switch(day)
    {
        case 1:
        case 2:    
        case 3:    
        case 4: 
        case 5:
            printf("weekday\n");//day的值为1-5时,输出weekday
            break;        
        case 6:  
        case 7:
            printf("weekend\n");//day的值为6-7时,输出weekend
            break;        
    }
    return 0;
}

break语句的实际效果是把语句列表划分为不同的分支部分。

1.2.1 default子句

default:case:属于同一级别
switch表达式的值不匹配所有case标签的值时,就会执行default子句后边的语句,所以每个switch语句中只能出现一条dafault子句。

2、循环语句


2.1 while循环

语句结构:

while(表达式)
    {
        循环语句;
    }

在屏幕上打印1-10的数字。

#include <stdio.h>

int main()
{
    int i = 1;
    while(i<=10)
    {
        printf("%d ", i);
        i++; // i=i+1;
    }
    return 0;
}

运行结果:
在这里插入图片描述

2.1.1 while语句中的break

break介绍:

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

运行结果:
在这里插入图片描述

从结果可以看出,没有打印5及5以后的数字。

总结:
break在while循环中的作用:

在循环中只要遇到break,就会停止后期的所有循环,直接终止循环。
所以:while中的break是用于终止循环的。

2.1.2 while循环中的continue

continue介绍:

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

运行结果:
在这里插入图片描述

从结果可以看出,没有打印5及5以后的数字,但是循环没有结束。

总结:
Continue在while循环中的作用:

continue用于终止本次循环,也就是continue后边的代码不会再执行,
而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。

2.2 for循环

语句结构:

for(表达式1;表达式2;表达式3)
    {
        循环语句;
    }

表达式1初始化部分,用于初始化循环变量的。
表达式2条件判断部分,用于判断循环是否终止。
表达式3调整部分,用于调整循环部分。

用for循环在屏幕上打印1-10的数字。

int main()
{
    int i = 0;
    for (i = 1; i <= 10; i++)
    {
        printf("%d ", i);
    }

    return 0;
}

运行结果:
在这里插入图片描述

2.2.1 for循环中的break和continue

在for循环中也可以出现break和continue,它们的意义和在while循环中是一样的。

// 代码1
#include <stdio.h>
int main()
{
    int i = 0;
    for (i = 1; i <= 10; i++)
    {
        if (i == 5)
            break;
        printf("%d ", i);
    }
    return 0;
}
// 代码2
#include <stdio.h>
int main()
{
    int i = 0;
    for (i = 1; i <= 10; i++)
    {
        if (i == 5)
            continue;
        printf("%d ", i);
    }
    return 0;
}
2.2.2 for循环和while循环的对比
int i = 0;
// 实现相同的功能,使用while
i = 1;          // 初始化部分
while (i <= 10) // 判断部分
{
    printf("hehe\n");
    i = i + 1; // 调整部分
}
// 实现相同的功能,使用while
for (i = 1; i <= 10; i++)
{
    printf("hehe\n");
}

可以发现在while循环中依然存在循环的三个必须条件,但是由于风格的问题使得三个部分很可能偏离较远,这样查找修改就不够集中和方便。
所以: for循环的风格更胜一筹;for循环使用的频率也最高。

2.3 do…while循环

语句结构:

do
    {
        循环语句;
    }while(表达式);
2.3.1 do语句的特点

循环至少执行一次,使用场景有限,所有不常使用。

#include <stdio.h>
int main()
{
    int i = 1;
    do
    {
        printf("%d ", i);
        i = i + 1;
    } while (i <= 10);
    return 0;
}
2.3.2 do…while循环中的break和continue
#include <stdio.h>
int main()
{
    int i = 1;
    do
    {
        if (5 == i)
            break;
        printf("%d ", i);
        i = i + 1;
    } while (i <= 10);

    return 0;
}
#include <stdio.h>
int main()
{
    int i = 1;

    do
    {
        if (5 == i)
            continue;
        printf("%d ", i);
        i = i + 1;
    } while (i <= 10);

    return 0;
}
    {
        if (5 == i)
            break;
        printf("%d ", i);
        i = i + 1;
    } while (i <= 10);

    return 0;
}
#include <stdio.h>
int main()
{
    int i = 1;

    do
    {
        if (5 == i)
            continue;
        printf("%d ", i);
        i = i + 1;
    } while (i <= 10);

    return 0;
}
  • 19
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值