java中switch内局部变量的作用域范围 5
case2:里的intm=10如果注释掉会报初始化错误,而不是报未找到找符号“m”这个错误,说明case1:声明的变量m对于case22:这里是可见的,如果是可见的那为什...
case 2: 里的int m=10如果注释掉会报初始化错误,而不是报未找到找符号“m”这个错误,说明case 1:声明的变量m对于case2 2:这里是可见的,如果是可见的那为什么会报未初始化错误呢?
case 2: int m=10; 这样的话就会报已经定义了m变量m的错误,说明case 1:里变量m的作用域包括了case 2:,但case 1:里的m明明已经初始化了,但是直接在case 2里打印输出时就会报m未初始化错误,为什么呢? 展开
case 2: int m=10; 这样的话就会报已经定义了m变量m的错误,说明case 1:里变量m的作用域包括了case 2:,但case 1:里的m明明已经初始化了,但是直接在case 2里打印输出时就会报m未初始化错误,为什么呢? 展开
6个回答
展开全部
其实相当于 在 switch 外面定义了一个 int m; 而这个m没有初始化。
因为进入的是 case 2 没有进入 case 1,所以在case 2 中会报未初始化。
故在 case 后面尽量把逻辑代码 用 {} 控制一下作用范围。
因为进入的是 case 2 没有进入 case 1,所以在case 2 中会报未初始化。
故在 case 后面尽量把逻辑代码 用 {} 控制一下作用范围。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这和switch中定义的变量的作用与有关,你可以强制限制一下变量的作用域,也就是加个大括号:
int number = 2;
switch (number) {
case 1:
{
int m = 100;
System.out.println(m);
}
break;
case 2:
{
int m = 10;
System.out.println(m);
}
break;
default:
System.out.println(100);
break;
}
追问
这样是可以解决问题,但是解决不了我心中的疑问啊!为什么不是报未找到变量m
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这不是说:说明case 1:里变量m的作用域包括了case 2:而是告诉你在case1中定义的m在case2中就不能重复定义了 才会爆已经定义了m变量m的错误 这个case2中输出的m必须在case2中进行定义但是不能和前面的变量重复 要么你就把m拿到外面去定义
更多追问追答
追问
如果是不同的作用域定义同名的局部变量是没问题的啊
追答
不同的作用域可以用相同变脸名这个好像是局部变量和全局变量那节说的 你在仔细看看, 在相同作用域变量名是唯一的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这和switch中定义的变量的作用与有关,你可以强制限制一下变量的作用域,也就是加个大括号:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int number = 2;
switch (number) {
case 1:
{
int m = 100;
System.out.println(m);
}
break;
case 2:
{
int m = 10;
System.out.println(m);
}
break;
default:
System.out.println(100);
break;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int number = 2;
switch (number) {
case 1:
{
int m = 100;
System.out.println(m);
}
break;
case 2:
{
int m = 10;
System.out.println(m);
}
break;
default:
System.out.println(100);
break;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
switch里面的局部变量只能用在switch后面括号范围内。
解释:局部变量的作用范围就是此变量对应的第一层括号(大括号,小括号)。
备注:这个是java的固定用法,局部变量只能是在局部使用,不能全局使用。
解释:局部变量的作用范围就是此变量对应的第一层括号(大括号,小括号)。
备注:这个是java的固定用法,局部变量只能是在局部使用,不能全局使用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询