DAY 5 C基础 -switch分支 -while循环 -for循环 辅助控制关键词

思维导图

 一、switch····case分支

【1】格式

switch(变量)
{
    case 常量表达式:
        语句块1;
        break;
    case 常量表达式:
        语句块2;
        break;
        ····
    case 常量表达式:
        语句块n;
        break;
    default:
        语句块n+1;
        break;            
}

switch和后面括号内的内容是,选择的变量,case后面的常量表达式,就是switch后面的变量可能出现的情况。

哪个case后面的常量是变量的结果,就执行哪个case后面的代码块。

执行逻辑

进入switch···case判断变量的结果,和case后的常量表达式判断,走满足的case后面的分支,

如果一个case后面没有break,执行完该case后会顺序向后执行下面的case/switch···case语句,

default的作用,如果不关心其他分支,就写一个default,其他分支就走default

注意事项

switch后面的变量只能是char/int

如果不加break会顺序向后执行,叫做case击穿

case的顺序,不会影响程序的执行

default的位置也不会影响程序的执行,只有所有case都不满足时,才会走default分支

case击穿可以根据使用场景的不用利用起来。


二、while循环

【1】格式

while(条件)
{
    代码块;
    改变循环变量的语句;
}

先判断条件是否成立,如果条件成立,执行代码块里的语句

再判断条件是否成立,如果不成立退出while循环

注意:

循环的次数,只和循环变量初始值、步长以及循环条件有关。

如果while后面,只有一条语句,{}可以不写

while()后面不要加;

例子:

使用while循环输出5行helloworld。

#include <stdio.h>
int main()
{
    int i = 2;
    while(i<=10)
    {
        printf("hello world\n");
        i+=2;     //让循环变量每次自增2
    }
}

猴子吃桃问题,猴子第一天摘了若干个桃,

当即就吃了一半的桃,没过瘾,又多吃一个

第二天,在剩下的桃里吃了一半的桃,没过瘾,又多吃一个

依次类推,知道第10天,猴子发现只剩一个桃了。

问:猴子第一天摘了几个桃子。

#include <stdio.h>
int main(int argc, const char *argv[])
{
    int peach = 1,i=9;   //i进入循环时是第9天,第9天的桃子数才需要去计算
    while(i>=1)   //循环进行9次
    {
    peach=(peach+1)*2;
    i--;   //改变循环变量
    }
    printf("%d\n",peach);

    return 0;
}


三、for循环

【1】格式

for(表达式1;表达式2;表达式3)
{
    (循环体内)代码块;
}

先执行表达式1,表达式1通常是循环变量初始化语句,

再执行表达式2,表达式2是for循环判断条件,

如果条件成立,执行循环体内的语句,再执行表达式3,表达式3就是循环变量的步长

如果条件不成立,退出for循环.

【2】练习

终端输入一个数,求该数的所有因子,如12,输出1 2 3 4 6 12

#include <stdio.h>
int main(int argc, const char *argv[])
{
    int num;
    scanf("%d",&num);
    int i;
    for(i=1;i<=num;i++)  //循环从1-num的每一个数
    {
        if(num%i==0)  //判断循环到的数是否是num的因子
        {
        printf("%d\n",i);
        }
    }
    return 0;
}

输出下三角的九九乘法表

#include <stdio.h>
int main(int argc, const char *argv[])
{
    int i,j;
    for(i=1;i<=9;i++)  //外层循环控制行数
    {
            for(j=1;j<=i;j++) //内层循环控制每行打印的列数
               {
            printf("%d*%d=%d\t",j,i,i*j);
        }
        printf("\n"); //每一行打印完输出换行
    }
    return 0;
}


四、辅助控制关键字

return break continue

【1】break

break只能用在循环和switch···case中

break用在循环中,表示退出本层循环。

例子:

for循环
#include <stdio.h>
int main(int argc, const char *argv[])
{
    int i,j;
    for(i=1;i<4;i++)
    {
        printf("i=%d\t",i);
        for(j=1;j<5;j++)
        {
            if(j==3)
            {
                //break;  //跳出本层循环
                continue;  //跳出本层本次循环
                //return ;   //退出当前函数
            }
            printf("j=%d\t",j);
            
        }
        printf("\n");
    }
    return 0;
}
while循环
#include <stdio.h>
int main(int argc, const char *argv[])
{
    int i=1,j=1;
    while(i<4)
    {
        printf("i=%d\t",i);
        j=1;  //让内层循环变量j,每一次进入循环前都重置一次
        while(j<5)
        {
            if(j==3)
            {
                //break;  //跳出本层循环
                //continue;  //跳出本层本次循环,死循环,因为j永远=3
                return 1;
            }
            printf("j=%d\t",j);
            j++;
        }
        printf("\n");
        i++;
    }
    return 0;
}

【2】continue

退出本层本次循环

continue放在while中时,需要把修改循环变量的语句放在continue的上面

【3】return

退出当前函数


作业:

1.整理思维导图

 

2.while循环的练习用for循环做一遍,桃子数的不需要

1、使用while循环输出5行helloworld。

 

2、1-100中的偶数

 

3、求1-100的和,5050。

 

4、输出100-999内的所有水仙花数,(各位的三次方相加等于该数)

使用pow函数,需要加编译选项-lm。

 

3.for循环的练习用while写一遍

1、求1-100内奇数的和。

 

2、终端输入一个数,求该数的所有因子,如12,输出1 2 3 4 6 12

 

3、输出下三角的九九乘法表

 

4、终端输入行数,打印直角三角形

 

打印等腰三角形

for循环:


while循环:

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值