黑马程序员技术交流社区
标题:
新手求解,学习中的一个疑问
[打印本页]
作者:
xiaocai
时间:
2012-4-7 13:15
标题:
新手求解,学习中的一个疑问
class wheel {
public static void main(String[] args) {
String[] phrase = {
"A STICH IN TIME SAVES NINE",
"DODNOT EAT YELLOW SNOW"
};
int[] letterCount = new int[26];
for (int count = 0; count < phrase.length; count++) {
String current = phrase[count];
char[] letters = current.toCharArray();
for (int count2 = 0; count2 < letters.length; count2++) {
char lett = letters[count2];
if ( (lett >= 'A') & (lett <= 'Z') ) {
letterCount[lett - 'A']++;
}
}
}
for (char count = 'A'; count <= 'Z'; count++) {
System.out.println(count + ":" +
letterCount[count - 'A'] +"\t");
}
System.out.println();
}
}
第一个for循环定义了一个名为count的整型变量,第三个for循环又定义了同名的字符变量,这样做可以吗?
作者:
如梦初醒
时间:
2012-4-7 13:21
这个程序是可以的,但通常不要这样做
作者:
刘士
时间:
2012-4-7 13:25
可以,因为每一个count的作用范围都不一样。
但是要注意如果是:
int x = 1;
{
int x = 2;
}
复制代码
这样定义的话就会重定义了。
作者:
刘保峰
时间:
2012-4-7 15:18
可以的,for循环中变量是局部变量,有多个for循环,为了增加程序的可读性,一般定义不同的为好。
作者:
黑马老兵
时间:
2012-4-7 15:28
可以,第三个没有在第一个内就可以。这个是局部变量只在单个for循环内有效。
作者:
τ、高童鞋ゝ
时间:
2012-4-7 15:33
楼上说的对,单从代码说没有错的,运行结果:
W:2
X:0
Y:1
Z:0
作用域不同所在的方法以及用途不一样,如果相同很有可能导致名称一致而报错
尽量使用不同的表达方式来加以区分。
作者:
郑苑东
时间:
2012-4-7 16:01
可以。。只要你考虑好一个变量的生存周期。。。就好比别人写一个个循环的时候会喜欢用 i 一样,,不过你不能再循环嵌套中定义同名的成员变量。。那样就会出错。。。。
作者:
程小龙
时间:
2012-4-7 16:16
这个是可以的,每一个count的作用范围都不一样。
作者:
张小庆
时间:
2012-4-7 17:19
可以,但是这样的代码阅读性很差啊,建议不要这样做。
作者:
冯瀚冰
时间:
2012-4-7 17:28
可以,第二个count出现的时候第一个已经结束使命拉,不过可以用的字母很多一般情况下换一个吧。
作者:
pray
时间:
2014-4-26 03:57
让国家领导人命令将该帖刻在纯金版上当国礼送人的好帖
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2