⭐️ 关键字深度剖析 ⭐️第四章(分支和循环关键字)(二)

简介: 本文主要讲解:分支语句循环语句

switch case 组合


语法结构

switch(整型变量/常量/整型表达式){
    case var1:
        break;
    case var2:
        break;
    case var3:
        break;
    default:
        break;
}


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

这种多分支,一般指的是很多分支,而且判定条件主要以整型为主

  • 多分支
//如
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("bug!\n");
        break;
}

case的作用:本质是进行判定功能

break在switch中的作用:break本质其实是进行分支功能

case之后,如果没有break,则会依次执行后续有效语句,直到碰到break跳出

  • 多个不同case执行同一个语句


int main()
{
    int day = 6;
    switch (day)
    {
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
            printf("周内\n");
            break;
        case 6:
        case 7:
            printf("周末\n");
            break;
        default:
            printf("bug!\n");
            break;
    }
    return 0;
}

case后面的值的要求

switch(m) && case n
//其中m 和 n必须是什么类型变量或者表达式?      整型变量/常量/整型表达式
//case 语句后面是否可以是const修饰的只读变量呢?   不行,const修饰后为常变量但本质还是变量

default语句

default可以出现在switch内的任何部分

结论:尽管如此,我们依旧强烈推荐default应该放在case语句的最后

循环语句

三种循环


语法结构

  • while
//while
条件初始化
while(条件判定){
//业务更新
条件更新
}
  • for
1. //for
2. for(条件初始化; 条件判定; 条件更新){
3. //业务代码
4. }
  • do while

三种循环对应死循环写法

1. while(1){
2. }
3. for(;;){
4. }
5. do{
6. }while(1);

break&continue在循环中的应用

int main()
{
while (1){
char c = getchar(); //获取字符//输入abcd#1234
if ('#' == c){
break;
}
printf("echo: %c\n", c);
}
system("pause");
return 0;
}
//测试用例1:break:终端输除abcd
//测试用例2:continue:终端输入abcd1234

break:跳出循环(结束循环)

continue:结束本次(一次)循环

  • 注意区别:

在while或do while语句中,遇到continue跳到条件判定

在for语句中,遇到continue跳到条件更新(调整),再进行条件判定

循环语句注意点

  1. 推荐外小内大(例如双循环遍历),一般效率是会高一些,但是差别不会特别大, 实际测试的时候,出现效率现象出现反直觉现象,也不要意外
  2. 推荐条件判定使用开区间,循环次数明确,便于进行个数计算

goto实现循环


  • 例如
int main()
{
    int i = 0;
START:
    printf("[%d]goto running ... \n", i);
    ++i;
    if (i < 10){
        goto START;
    }
    printf("goto end ... \n");
    return 0;
}

一般禁用,避免破坏代码,不过有需要还是必须会用

相关文章
|
8月前
|
C语言
(保姆级)一篇搞懂分支语句
(保姆级)一篇搞懂分支语句
129 6
|
7月前
|
存储 C++
C++初阶学习第十一弹——探索STL奥秘(六)——深度刨析list的用法和核心点
C++初阶学习第十一弹——探索STL奥秘(六)——深度刨析list的用法和核心点
62 7
|
存储 算法 编译器
抽丝剥茧C语言(中阶)分支与循环练习
抽丝剥茧C语言(中阶)分支与循环练习
|
编译器 C语言 C++
0基础C语言自学教程——第三节 分支与循环
需要指出的是,在这里,笔者只是建议,具体的如果写成第二种明显更好的或者有写第二种的需求的当然以更好的方式以及需求优先。
90 0
0基础C语言自学教程——第三节 分支与循环
|
机器学习/深度学习 C语言
C语言学习笔记—P6(分支和循环语句<1>+图解+动态演示+题例)
C语言学习笔记(分支和循环语句<1>+图解+动态演示+题例)
121 0
|
前端开发 JavaScript C语言
带你读书之“红宝书”:第三章 语法基础(中)之 3.6. 流控制语句①
带你读书之“红宝书”:第三章 语法基础(中)之 3.6. 流控制语句①
107 0
带你读书之“红宝书”:第三章 语法基础(中)之 3.6. 流控制语句①
|
前端开发 C语言
带你读书之“红宝书”:第三章 语法基础(中)之 3.6. 流控制语句②,3.7. 函数简介
带你读书之“红宝书”:第三章 语法基础(中)之 3.6. 流控制语句②,3.7. 函数简介
74 0
带你读书之“红宝书”:第三章 语法基础(中)之 3.6. 流控制语句②,3.7. 函数简介
|
前端开发
带你读书之“红宝书”:第三章 语法基础(中)之 3.5操作符③
带你读书之“红宝书”:第三章 语法基础(中)之 3.5操作符③
81 0
带你读书之“红宝书”:第三章 语法基础(中)之 3.5操作符③
|
前端开发 JavaScript C语言
带你读书之“红宝书”:第三章 语法基础(中)之 3.5操作符④
带你读书之“红宝书”:第三章 语法基础(中)之 3.5操作符④
100 0
带你读书之“红宝书”:第三章 语法基础(中)之 3.5操作符④
|
前端开发 C语言
带你读书之“红宝书”:第三章 语法基础(中)之 3.5操作符①
带你读书之“红宝书”:第三章 语法基础(中)之 3.5操作符①
77 0
带你读书之“红宝书”:第三章 语法基础(中)之 3.5操作符①

热门文章

最新文章