A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xiaocai 初级黑马   /  2012-4-7 13:15  /  2346 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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循环又定义了同名的字符变量,这样做可以吗?

10 个回复

倒序浏览
这个程序是可以的,但通常不要这样做
回复 使用道具 举报
可以,因为每一个count的作用范围都不一样。

但是要注意如果是:
  1. int x = 1;

  2. {
  3.         int x = 2;
  4. }
复制代码
这样定义的话就会重定义了。
回复 使用道具 举报
可以的,for循环中变量是局部变量,有多个for循环,为了增加程序的可读性,一般定义不同的为好。
回复 使用道具 举报
可以,第三个没有在第一个内就可以。这个是局部变量只在单个for循环内有效。
回复 使用道具 举报
楼上说的对,单从代码说没有错的,运行结果:
W:2       
X:0       
Y:1       
Z:0       
作用域不同所在的方法以及用途不一样,如果相同很有可能导致名称一致而报错
尽量使用不同的表达方式来加以区分。
回复 使用道具 举报
可以。。只要你考虑好一个变量的生存周期。。。就好比别人写一个个循环的时候会喜欢用   i  一样,,不过你不能再循环嵌套中定义同名的成员变量。。那样就会出错。。。。
回复 使用道具 举报
这个是可以的,每一个count的作用范围都不一样。
回复 使用道具 举报
可以,但是这样的代码阅读性很差啊,建议不要这样做。
回复 使用道具 举报
可以,第二个count出现的时候第一个已经结束使命拉,不过可以用的字母很多一般情况下换一个吧。
回复 使用道具 举报
pray 高级黑马 2014-4-26 03:57:34
11#
让国家领导人命令将该帖刻在纯金版上当国礼送人的好帖
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马