C++中switch case 中定义变量
来源:互联网 发布:飞鸟淘宝客教程 编辑:程序博客网 时间:2024/06/06 01:19
在C++中switch case中定义变量
1.
int n = 3;
//代码1
switch (n)
{
case 2:
int y = 4;
cout << y << endl;
break;
case 3:
int z = 5;
cout << z << endl;
break;
}
报错信息:error C2360: “y”的初始化操作由“case”标签跳过
这是因为可能出现在case 2中定义了,但是在case 3中使用了(当然,我们没在case3中使用了,但编译器认为这种可能会发生),但程序执行的跳过了case 2,执行的是case 3,这个时候在case 3中使用y相当于使用了一个没有定义的变量,相当于出现这种代码:
//代码2
int n = 3;
switch (n)
{
case 2:
int y = 4;
cout << y << endl;
break;
case 3:
cout << y << endl;
break;
}
代码2中的case 3没有报错,原因是在case 3,int z的作用域在它的下面都可以使用,不存在作用域的问题。
解决办法:
1.在switch上面定义变量
2.在case中加上大括号,限定变量的作用域
//代码3
int n = 3;
switch (n)
{
case 2:
{
int y = 3;
cout << y << endl;
}
break;
case 3:
cout << n << endl;
break;
}
3.先定义,在赋值
//代码4
int n = 3;
switch (n)
{
case 2:
int y;
y = 3;
cout << y << endl;
break;
case 3:
cout << n << endl;
break;
}
//代码5
int n = 3;
switch (n)
{
int y = 3;
case 2:
cout << y << endl;
break;
case 3:
cout << n << endl;
break;
}
在这里两个case语句都有报错,“y”的初始化操作由“case”标签跳过。代码4中按理来说y的已经定义并初始化了,且这个int y=3,这句不存在不跳过的可能。报错原因不明。
- switch case中变量定义
- c中switch case 中关于变量定义问题
- C++:在switch的case中定义变量的问题
- C语言switch case语句中定义变量问题
- C++中switch case 中定义变量
- 易错点:C++ switch case中定义变量
- c++中switch case 中关于变量定义问题
- switch中case中变量定义的问题
- 关于C语言中switch的case里定义变量解决编译报错
- switch-case 中的分支中变量定义 编译不通过问题
- 在switch-case中定义变量时当心被“穿越”
- 在switch-case中定义变量时当心被“穿越”
- 在switch-case中定义变量时当心被“穿越”
- 在switch-case中定义变量时当心被“穿越”
- switch 的 case 中不能定义变量 解决办法
- 在switch-case中定义变量时当心被“穿越”
- c语言在switch中定义变量
- 在case中定义变量
- 【docker 底层知识】安装 cgroup 介绍与原理
- MySQL 判断记录是否存在,不存在则插入存在则更新
- ios 翻书效果
- 阅读收藏
- Ulua热更新提高 <一> Ulua_SimpleFramework框架流程详解
- C++中switch case 中定义变量
- 位图转化为矢量图
- Python request简单使用
- 运动检测(前景检测)之(一)ViBe
- 17-03-21 课堂笔记
- 面向对象——接口整理
- SAP 甘特图
- django basic configuration
- c#