C语言中的分支和循环语句

一.switch语句

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

比如

输入1:输出星期一

输入2:输出星期二

输入3:输出星期三

输入4:输出星期四

输入5:输出星期五

输入6:输出星期六

输入7:输出星期日

输入一个数字,根据这个数字决定输出星期几。此问题的代码如下:

#include<stdio.h>
#include<stdlib.h>

int main(){
    printf("输入一个表示星期的数字(1-7):");
    int num=0;
    scanf("%d",&num);
    switch(num){
        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:
            //如果前面所有的 case 都没有命中,于是就走到 default 分支中
            //如果使用了 switch 语句,必须要写 default 分支 
            printf("非法输入\n");
            break;          
    }
    system("pause");
    return 0;
}

当然,任何语句都有其缺点,比如switch case语句局限性:

1.本质上这个和else if相比也没有简单到哪里去

2.如果忘记写break,代码的执行过程就会不大一样,会尝试着继续执行

3.case语句中无法定义变量

4.case语句判定的条件必须是int long short char 等类型的变量

二.while语句中的break和continue

1.有关break的代码介绍为

#include<stdio.h>
#include<stdlib.h>

int main(){
    //从1循环到10,如果一旦发现 数字5就结束循环
    int i=1;
    while(i<=10){
        printf("%d\n",i);
        if(i==5){
            //跳出循环
            break;
        }
        i+=1;
    }
    system("pause");
    return 0;
}

2.有关continue的代码介绍为

#include<stdio.h>
#include<stdlib.h>
int main(){
    //for语句也是用来表示循环.
    //while语句容易遗漏循环变量的更新操作
    //for循环就是为了解决 while 循环的这个缺点
    
    //从1循环到10,如果发现数字5,就跳过5,继续循环后面的数字
    int i=1;
    while(i<=10){
        if(i==5){
            i+=1;
            continue;
        }
        printf("%d\n",i);
        i+=1;
    }
    system("pause");
    return 0;
}

三.for循环

for循环语句格式:

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

循环语句;

举个例子:

#include<stdio.h>
#include<stdlib.h>
int main(){
    //从 1 打印到 10,不打印5
    
    //for循环的执行过程
    //1.执行表达式1(初始化部分)
    //2.执行表达式2,判断循环体是否要执行
    //3.执行循环体代码
    //4.执行表达式3,更新循环变量
    //5.执行表达式2,判定循环体是否要执行
    //6.如果循环体中带有break,直接跳出循环
    //7.如果循环体中带有continue,跳过本次循环的循环体代码,执行表达式3,再执行表达式2
    //后边重复 2 3 4 过程....
    //如果省略了表达式1,只要对变量进行过初始化的话,不影响
    //如果省略了表达式2,循环成了死循环
    //如果省略了表达式3,循环变量就没法更新了,其实
    //并不是没法更新,可以把更新语句放到循环体中
    
    //for( ;i<=10; ){
    //    if(i==5){
    //        ++i;        
    //        continue;
    //    }
    
    //从 1 打印到 10,不打印 5
    
     int i=1;
    for(i=1;i<=10;++i){
        if(i==5){
            continue;
        }
        printf("%d\n",i);
    }
    
    //while语句
    //int i=1;
    //while(i<=10){
    //    if(i==5){
    //        ++i;
    //        continue;
    //    }
    //    printf("%d\n",i);
    //    ++i;
    //}
    system("pause");
    return 0;
}

 

 

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值