switch case 中定义变量

简介: 搞不明白,为什么有时候在switch中定义变量没有问题,有时候又会报错。  刚刚又报了一个:1540-0246 (S) The "case" statement bypasses the initialization of "CString sRoamAreaCode".  这种不清楚的状况终于因为刚刚的一时兴起,google了下下~~  原来只是加不加括号的区别。
 搞不明白,为什么有时候在switch中定义变量没有问题,有时候又会报错。
  刚刚又报了一个:1540-0246 (S) The "case" statement bypasses the initialization of "CString sRoamAreaCode".

  这种不清楚的状况终于因为刚刚的一时兴起,google了下下~~

  原来只是加不加括号的区别。
  因为C++中变量的作用域是相邻的两个大括号,假设下面的例子:
  int nChoose; 
  switch(nChoose)
{
  case 1:
   int i = 1;
  break;
  case 2:
  break;
  default:
   break;
}
i的作用域是switch的两个大括号,这样如果nChoose的值是2的话,就会跳过i的声明 定义语句,出错是必然的。
所以,只要加个大括号,就什么问题都解决啦
int nChoose; 
  switch(nChoose)
{
  case 1:
{
   int i = 1;
}
  break;
  case 2:
  break;
  default:
   break;
}
相关文章
|
14天前
|
C#
c#中switch case语句的用法
C#中的 `switch case`语句提供了一种简洁而高效的方式来处理多个条件分支。通过了解其基本语法、注意事项和高级用法,可以在实际开发中灵活运用 `switch case`,提高代码的可读性和维护性。希望本文能帮助你更好地理解和使用C#中的 `switch case`语句。
40 0
|
7月前
枚举在 switch 中的使用
枚举在 switch 中的使用。
65 5
|
7月前
|
编译器 C语言
learn_C_deep_7 (switch 语句的基本理解、case 的作用、break的作用switch、case 推荐规则)
learn_C_deep_7 (switch 语句的基本理解、case 的作用、break的作用switch、case 推荐规则)
if-else if与switch的区别
if-else if与switch的区别
183 0
enum和switch case结合使用
在将enum和switch case结合使用的过程中,遇到了这个错误:“An enum switch case label must be the unqualified name of an enumeration constant”。
switch case 执行
switch case 执行
141 0
|
C#
switch case语句
switch case语句
203 0
|
Java
switch case 语句有如下规则
switch case 语句有如下规则
183 0
|
PHP C#
C#(八)之判断语句IF SWITCH
IF / ELSEIF / ELSE If 满足条件择执行; 多个elseif时,其中有一个满足条件,那个之后的elseif都不会执行; else上面都不满足时执行。 Switch:这个按照正常语法写就可以了,不要忘记写break;
243 0
C#(八)之判断语句IF SWITCH