写点什么

C 语言中的 switch 语句和 while 循环详解

作者:小万哥
  • 2023-12-27
    广东
  • 本文字数:1391 字

    阅读完需:约 5 分钟

C 语言中的 switch 语句和 while 循环详解

C 语言中的 switch 语句

替代多重 if..else 语句,可以使用 switch 语句。switch 语句用于选择多个代码块中的一个来执行


switch(表达式) {  case x:    // 代码块    break;  case y:    // 代码块    break;  default:    // 代码块
复制代码

工作原理

  • switch 表达式只会被计算一次

  • 表达式的值与每个 case 的值进行比较

  • 如果找到匹配,则执行相应的代码块

  • break 语句用于跳出 switch 块并停止执行

  • default 语句是可选的,如果找不到匹配的 case,则执行它指定的代码


下面的示例使用星期几的数字来计算星期几的名称:


int day = 4;
switch (day) { case 1: printf("星期一"); break; case 2: printf("星期二"); break; case 3: printf("星期三"); break; case 4: printf("星期四"); break; case 5: printf("星期五"); break; case 6: printf("星期六"); break; case 7: printf("星期日"); break;}
// 输出 "星期四" (星期 4)
复制代码


break 关键字:


  • 当 C 遇到 break 关键字时,它会跳出 switch 块。

  • 这将停止执行更多代码和块内部的 case 测试。

  • 当找到匹配项并完成任务时,就该休息了。没有必要进行更多测试。

  • break 可以节省大量的执行时间,因为它“忽略”了 switch 块中所有其他代码的执行。


default 关键字:


  • default 关键字用于指定在找不到 case 匹配时要运行的代码:


int day = 4;
switch (day) { case 6: printf("今天是星期六"); break; case 7: printf("今天是星期日"); break; default: printf("期待周末");}
// 输出 "期待周末"
复制代码

C 语言中的 while 循环

循环


循环可以执行一段代码,只要满足指定的条件。循环非常方便,因为它们可以节省时间、减少错误并使代码更易于阅读。


while 循环


只要指定的条件为真,while 循环就会一直循环执行一段代码块:


语法:


while (条件) {  // 要执行的代码块}
复制代码


在下面的示例中,只要一个变量 (i) 小于 5,循环中的代码就会一遍又一遍地运行:


示例


int i = 0;
while (i < 5) { printf("%d\n", i); i++;}
复制代码


注意: 不要忘记增加用于条件的变量 (i++),否则循环将永远不会结束!


do/while 循环


do/while 循环是 while 循环的一个变体。这个循环会在检查条件是否为真之前先执行一次代码块,然后只要条件为真,就会重复该循环。


语法:


do {  // 要执行的代码块}while (条件);
复制代码


下面的示例使用了一个 do/while 循环。即使条件为假,循环也至少会执行一次,因为代码块是在测试条件之前执行的:


示例


int i = 0;
do { printf("%d\n", i); i++;}while (i < 5);
复制代码


不要忘记增加用于条件的变量,否则循环将永远不会结束!


现实生活中的例子


为了展示 while 循环的实际例子,我们可以创建一个简单的“倒计时”程序:


示例


int countdown = 3;
while (countdown > 0) { printf("%d\n", countdown); countdown--;}
printf("新年快乐!\n");
复制代码


为了展示 while 循环结合 if else 语句的实际例子,假设我们玩一个 Yahtzee 游戏!


示例


如果骰子数字为 6,则打印“Yahtzee!”:


int dice = 1;
while (dice <= 6) { if (dice < 6) { printf("没有 Yahtzee\n"); } else { printf("Yahtzee!\n"); } dice = dice + 1;}
复制代码

最后

为了方便其他设备和平台的小伙伴观看往期文章:


微信公众号搜索:Let us Coding,关注后即可获取最新文章推送


看完如果觉得有帮助,欢迎 点赞、收藏、关注

发布于: 刚刚阅读数: 4
用户头像

小万哥

关注

代码如人生 2023-02-09 加入

编程爱好者

评论

发布
暂无评论
C 语言中的 switch 语句和 while 循环详解_程序人生_小万哥_InfoQ写作社区