C 语言中的 switch 语句
替代多重 if..else 语句,可以使用 switch 语句。switch 语句用于选择多个代码块中的一个来执行
1switch(表达式) { 2 case x: 3 // 代码块 4 break; 5 case y: 6 // 代码块 7 break; 8 default: 9 // 代码块
工作原理
switch表达式只会被计算一次- 表达式的值与每个
case的值进行比较 - 如果找到匹配,则执行相应的代码块
break语句用于跳出switch块并停止执行default语句是可选的,如果找不到匹配的case,则执行它指定的代码
下面的示例使用星期几的数字来计算星期几的名称:
1int day = 4; 2 3switch (day) { 4 case 1: 5 printf("星期一"); 6 break; 7 case 2: 8 printf("星期二"); 9 break; 10 case 3: 11 printf("星期三"); 12 break; 13 case 4: 14 printf("星期四"); 15 break; 16 case 5: 17 printf("星期五"); 18 break; 19 case 6: 20 printf("星期六"); 21 break; 22 case 7: 23 printf("星期日"); 24 break; 25} 26 27// 输出 "星期四" (星期 4)
break 关键字:
- 当 C 遇到
break关键字时,它会跳出switch块。 - 这将停止执行更多代码和块内部的
case测试。 - 当找到匹配项并完成任务时,就该休息了。没有必要进行更多测试。
break可以节省大量的执行时间,因为它“忽略”了switch块中所有其他代码的执行。
default 关键字:
default关键字用于指定在找不到case匹配时要运行的代码:
1int day = 4; 2 3switch (day) { 4 case 6: 5 printf("今天是星期六"); 6 break; 7 case 7: 8 printf("今天是星期日"); 9 break; 10 default: 11 printf("期待周末"); 12} 13 14// 输出 "期待周末"
C 语言中的 while 循环
循环
循环可以执行一段代码,只要满足指定的条件。循环非常方便,因为它们可以节省时间、减少错误并使代码更易于阅读。
while 循环
只要指定的条件为真,while 循环就会一直循环执行一段代码块:
语法:
1while (条件) { 2 // 要执行的代码块 3}
在下面的示例中,只要一个变量 (i) 小于 5,循环中的代码就会一遍又一遍地运行:
示例
1int i = 0; 2 3while (i < 5) { 4 printf("%d\n", i); 5 i++; 6}
注意: 不要忘记增加用于条件的变量 (i++),否则循环将永远不会结束!
do/while 循环
do/while 循环是 while 循环的一个变体。这个循环会在检查条件是否为真之前先执行一次代码块,然后只要条件为真,就会重复该循环。
语法:
1do { 2 // 要执行的代码块 3} 4while (条件);
下面的示例使用了一个 do/while 循环。即使条件为假,循环也至少会执行一次,因为代码块是在测试条件之前执行的:
示例
1int i = 0; 2 3do { 4 printf("%d\n", i); 5 i++; 6} 7while (i < 5);
不要忘记增加用于条件的变量,否则循环将永远不会结束!
现实生活中的例子
为了展示 while 循环的实际例子,我们可以创建一个简单的“倒计时”程序:
示例
1int countdown = 3; 2 3while (countdown > 0) { 4 printf("%d\n", countdown); 5 countdown--; 6} 7 8printf("新年快乐!\n");
为了展示 while 循环结合 if else 语句的实际例子,假设我们玩一个 Yahtzee 游戏!
示例
如果骰子数字为 6,则打印“Yahtzee!”:
1int dice = 1; 2 3while (dice <= 6) { 4 if (dice < 6) { 5 printf("没有 Yahtzee\n"); 6 } else { 7 printf("Yahtzee!\n"); 8 } 9 dice = dice + 1; 10}
最后
为了方便其他设备和平台的小伙伴观看往期文章:
微信公众号搜索:Let us Coding,关注后即可获取最新文章推送
看完如果觉得有帮助,欢迎 点赞、收藏、关注
