程序语言中的控制流语句用于控制各计算操作执行的次序。控制流结构有:(1)顺序结构(2)分支结构(3)循环结构
if...else语句是经典的分支结构控制语句,同样"switch (表达式)...case 常量表达式"
语句也可以实现分支处理。"表达式"可以是任何表达式,"常量表达式"也可以是任何常量表达式。case分支一般包含多条语句时也不必用大括号括起来,因
为每一个case分支只会给出switch分支结构中语句执行的开始位置,而不确定终止位置。switch分支结构的结束依靠switch分支结构结尾右
大括号 或者 break语句。
1 /*文件名:switch.c 2 * 描述:switch (表达式)...case (常量表达式) 3 * 中: 4 * 表达式 可以是任意表达式 5 * 常量表达式必须是常量表达式,如本例程中的会导致编译报错 6 * 7 * switch.c: 在函数‘main’中: 8 * switch.c:8:2: 错误:case 标号不能还原为一个整常量 9 * case a + 1: printf("a + 1是%c\n", a + 1); 10 * ^ 11 * switch.c:10:2: 错误:case 标号不能还原为一个整常量 12 * case a + 1: printf("a + 2是%c\n", a + 2); 13 * ^ 14 */ 15 #include <stdio.h> 16 17 main() 18 { 19 char a = 0; 20 21 switch (a) { 22 case a + 1: printf("a + 1是%c\n", a + 1); //错误:‘a’不能出现在常量表达式中 23 break; 24 case a + 1: printf("a + 2是%c\n", a + 2); //错误:‘a’不能出现在常量表达式中 25 break; 26 default: 27 printf("default\n"); 28 break; 29 } 30 31 32 }
for语句是典型的循环结构控制语句。for语句可以用来按照一组数字的变化过程做出循环,循环变量随时代表了变化中的某个值。
注:
循环中我们可以使用continue;语句直接跳到循环体右大括号,这样她事实上实现了让循环直接进入下一轮循环的目的。
循环中可以使用break;语句直接砸碎循环,击毙循环。
1 /* 2 * 程序语言中的控制流语句用于控制各计算操作执行的次序。控制流结构有:(1)顺序结构(2)分支结构(3)循环结构 3 4 * while和do...while循环结构控制语句比for循环结构控制语句更具一般性 5 * 以下是一个while例程 6 */ 7 #include <stdio.h> 8 main() 9 { 10 int shu_zi = 0, ge_shu = 0; 11 printf("Input an integer:"); 12 scanf("%d", &shu_zi); 13 /* 14 while (shu_zi) {//这个循环所涉及语句执行顺序可以看成(我们用{}代表循环体所有语句):[shu_zi, {}] [shu_zi, {}] [shu_zi, {}] ... 15 shu_zi /= 10; 16 ge_shu++; 17 } 18 19 */ 20 21 do {//相比上面注释中的while循环,该循环避免了当用户输入整数0时候程序计算错误的尴尬 22 shu_zi /= 10; 23 ge_shu++; 24 } while (shu_zi);//这个循环所涉及语句执行顺序可以看成(我们用{}代表循环体所有语句): [{}, shu_zi] [{}, shu_zi] [{}, shu_zi] ... 25 printf("Integer %d 共 %d 位\n", shu_zi, ge_shu); 26 }
1 /* 2 * 死循环 3 * */ 4 5 #include <stdio.h> 6 7 main() 8 { 9 int counter = 0; 10 for (;;) { 11 printf("%d\n", counter++); 12 } 13 /* 14 for语句是典型的循环结构控制语句。for语句可以用来按照一组数字的变化过程做出循环,循环变量随时代表了变化中的某个值。 15 while和do...while是更具一般性的循环结构控制语句。while后面跟的循环条件测试语句不可以为空,但是for允许为空,当for循环的循环条件测试语句置空时,默认为真。 16 17 while (1) { 18 printf("%d\n", counter++); 19 } 20 */ 21 22 }
时间: 2024-10-13 04:58:37