正在加载图片...
靳润昭C语言教程讲义 2001年2月17日 本程序是要求输入一个数字,输出一个英文单词。但是当输入3之后,却执行了case3 以及以后的所有语句,输出了 Wednesday及以后的所有单词。这当然是不希望的。为什么 会出现这种情况呢?这恰恰反应了 switch语句的一个特点。在 switch语句中,"case常量 表达式〃只相当于一个语句标号,表达式的值和某标号相等则转向该标号执行,但不能在 执行完该标号的语句后自动跳出整个 switch语句,所以出现了继续执行所有后面case语 句的情况。这是与前面介绍的if语句完全不同的,应特别注意。为了避免上述情况,C语 言还提供了一种 break语句,专用于跳出 switch语句, break语句只有关键字 break,没 有参数。在后面还将详细介绍。修改例题的程序,在每一case语句之后增加 break语句, 使每一次执行之后均可跳出 switch语句,从而避免输出不应有的结果 【例4.10】 mainO( t printf( input integer number: switch(a)i case 1: printf("Monday \n"); break case 2: printf( Tuesday \n"): break case 3: printf( Wednesday\n"); break case 4: printf( "Thursday\"); break case 5: printf( friday\n); break case 6: printf( saturday \n); break case 7: printf("Sunday\n"); break default: printf( error\n") 在使用 switch语句时还应注意以下几点 1)在case后的各常量表达式的值不能相同,否则会出现错误 2)在case后,允许有多个语句,可以不用仆}括起来。 3)各case和 default子句的先后顺序可以变动,而不会影响程序执行结果 4) default子句可以省略不用 55程序举例 【例4.11】输入三个整数,输出最大数和最小数 main int a, b,c max, min printf( input three numbers: " scanf("%d%d%d", &a,&b, &c) if(a>b) 第11页靳润昭 C 语言教程讲义 2001 年 2 月 17 日 第11页 } 本程序是要求输入一个数字,输出一个英文单词。但是当输入 3 之后,却执行了 case3 以及以后的所有语句,输出了 Wednesday 及以后的所有单词。这当然是不希望的。为什么 会出现这种情况呢?这恰恰反应了 switch 语句的一个特点。在 switch 语句中,“case 常量 表达式”只相当于一个语句标号, 表达式的值和某标号相等则转向该标号执行,但不能在 执行完该标号的语句后自动跳出整个 switch 语句,所以出现了继续执行所有后面 case 语 句的情况。 这是与前面介绍的 if 语句完全不同的,应特别注意。为了避免上述情况,C语 言还提供了一种 break 语句,专用于跳出 switch 语句,break 语句只有关键字 break,没 有参数。在后面还将详细介绍。修改例题的程序,在每一 case 语句之后增加 break 语句, 使每一次执行之后均可跳出 switch 语句,从而避免输出不应有的结果。 【例 4.10】 main(){ int a; printf("input integer number: "); scanf("%d",&a); switch (a){ case 1:printf("Monday\n");break; case 2:printf("Tuesday\n"); break; case 3:printf("Wednesday\n");break; case 4:printf("Thursday\n");break; case 5:printf("Friday\n");break; case 6:printf("Saturday\n");break; case 7:printf("Sunday\n");break; default:printf("error\n"); } } 在使用 switch 语句时还应注意以下几点: 1) 在 case 后的各常量表达式的值不能相同,否则会出现错误。 2) 在 case 后,允许有多个语句,可以不用{}括起来。 3) 各 case 和 default 子句的先后顺序可以变动,而不会影响程序执行结果。 4) default 子句可以省略不用。 5.5 程序举例 【例 4.11】输入三个整数,输出最大数和最小数。 main(){ int a,b,c,max,min; printf("input three numbers: "); scanf("%d%d%d",&a,&b,&c); if(a>b)
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有