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
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 }
1 /*
2 * 程序语言中的控制流语句用于控制各计算操作执行的次序。控制流结构有:(1)顺序结构(2)分支结构(3)循环结构
3
4 * while和do...while循环结构控制语句比for循环结构控制语句更具一般性
5 * 以下是一个while例程
6 */
7 #include
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
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 }