注册 登录
编程论坛 C++教室

在switch中定义变量的问题?

newyj 发布于 2008-09-10 21:05, 1245 次点击
例:
switch(ival){
  case 1:
       int i=0;
       break;
  case 2:
       ......;
}
1:  在case 1:中定义的i是不是可以在case 2:中运用
2: 如果把int i=0;break;加上{}是不是只能在case 1:中使用 而 case 2:就不能运用了?
4 回复
#2
blueboy820062008-09-10 21:13
加不加{}都一样...
关键是看有没有break;
有的话,就跳出了,case 2: 中想用也用不着啊...
#3
newyj2008-09-10 21:38
就是怕没有break啊 那该怎么办
#4
blueboy820062008-09-10 22:11
好,我仔细回一下这个问题:

对于switch结构,只能在它的最后一个case标号或default标号后面定义变量~

制定这个规则是为了避免出现代码跳过变量的定义和初始化的情况.
变量的作用域是它的定义点开始有效的,直到它所在的块结束为止,再考虑一下switch语句的流程,
我想你能发现问题吧...
#5
newyj2008-09-10 22:24
谢谢 楼上 热心回答
1