赞
踩
目录
1. break语句 的实际效果是把语句列表划分为不同的分支部分
一个普通的局部变量是放在栈区的,而被static的修饰的局部变量,是放在内存的静态区的
存储位置发生了变化,使得局部变量出了作用域不会销毁,影响了变量的生命周期,但是作用域不受影响
没有static
- switch(整型表达式)
- {
- 语句项;
- }
- #define _CRT_SECURE_NO_WARNINGS 1
- #include<stdio.h>
- int main()
- {
- int day = 5;
- switch (day)
- {
- case 1:
- printf("星期1\n");
- case 2:
- printf("星期2\n");
- case 3:
- printf("星期3\n");
- case 4:
- printf("星期4\n");
- case 5:
- printf("星期5\n");
- case 6:
- printf("星期6\n");
- case 7:
- printf("星期天\n");
- }
- return 0;
- }

- #define _CRT_SECURE_NO_WARNINGS 1
- #include<stdio.h>
- int main()
- {
- int day = 3;
- switch (day)
- {
- case 1:
- printf("星期1\n");
- break;
- case 2:
- printf("星期2\n");
- break;
- case 3:
- printf("星期3\n");
- break;
- case 4:
- printf("星期4\n");
- break;
- case 5:
- printf("星期5\n");
- break;
- case 6:
- printf("星期6\n");
- break;
- case 7:
- printf("星期天\n");
- break;
- }
- return 0;
- }

- #define _CRT_SECURE_NO_WARNINGS 1
- #include<stdio.h>
- int main()
- {
- //1,2,3,4,5 工作日
- //6,7 休息日
- int day = 3;
- switch (day)
- {
- case 1:
- case 2:
- case 3:
- case 4:
- case 5:
- printf("工作日\n");
- break;
- case 6:
- case 7:
- printf("休息日\n");
- break;
- default:
- printf("选择错误\n");
- break;
- }
- return 0;
- }

如果表达的值与所有的case标签的值都不匹配怎么办?
其实也没什么,结构就是所有的语句都被跳过而已。
程序并不会终止,也不会报错,因为这种情况在C中并不认为是个错误。
但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢?
你可以在语句列表中增加一条default子句,把下面的标签
default:
写在任何一个 case 标签可以出现的位置。
当 switch 表达式的值并不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行。
所以,每个switch语句中只能出现一条default子句。
但是它可以出现在语句列表的任何位置,而且语句流会像执行一个case标签一样执行default子句。
- #define _CRT_SECURE_NO_WARNINGS 1
- #include<stdio.h>
- int main()
- {
- int day = 9;
- switch (day)
- {
- case 1:
- printf("星期1\n");
- break;
- case 2:
- printf("星期2\n");
- break;
- case 3:
- printf("星期3\n");
- break;
- case 4:
- printf("星期4\n");
- break;
- case 5:
- printf("星期5\n");
- break;
- case 6:
- printf("星期6\n");
- break;
- case 7:
- printf("星期天\n");
- break;
- default:
- printf("选择错误!\n");
- break;
- }
- return 0;
- }

- #define _CRT_SECURE_NO_WARNINGS 1
- #include<stdio.h>
- int main()
- {
- int n = 1;
- int m = 2;
- switch (n)
- {
- case 1:m++;
- case 2:n++;
- case 3:
- switch (n)
- {//switch允许嵌套使用
- case 1:n++;
- case 2:
- m++;n++;
- break;
- }
- case 4:
- m++;
- break;
- default:
- break;
- }
- printf("m = %d, n = %d\n", m, n);
- //
- return 0;
- }

- for(表达式1; 表达式2; 表达式3)
- 循环语句;
- do
- 循环语句;
- while(表达式);
- auto break case char const continue default do double else enum
- extern float for goto if int long register return short signed
- sizeof static struct switch typedef union unsigned void volatile while
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。