各位大G大J您们好:
    我是一位Java刚刚接触者,看了Core Java第七版中有一个例子,说是从JSDK5.0开始支持这样的用法:
for (String g greeting)
  System.out.println(g);
我的JSDK安装的就是JSDK1.5.0_07啊,为什么不支持这样的用法,改成如下用法即不报错了:
for (int i = 0; i < greeting.length; i++)
  System.out.println(greeting[i]);请各位朋友帮助指点一二,谢谢,非常感谢!

解决方案 »

  1.   

    把冒号补上OK了
    for (String g : greeting)
      

  2.   

    谢谢“Ryo_Hazuki(困了) ”,冒号是应该有的,我不小心敲掉了,呵呵!
    但这样还是不行啊,大家看看下面是我在cmd中运行的出错信息
    D:\Java\java-fjw\Java\lesson1>javac test.java
    test.java:11: ';' expected
            for (String g: greeting)
                         ^
    test.java:16: illegal start of expression
        }
        ^
    test.java:13: ';' expected
    ^
    3 errorsD:\Java\java-fjw\Java\lesson1>java -version
    java version "1.5.0_06"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
    Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode, sharing)
      

  3.   

    java 的版本是1.5不代表javac也是1.5的
      

  4.   

    谢谢ChDw(米):
    那该怎么办啊,我下载安装的是J2SDK1.5.0_?啊,如何知道Javac的版本号,如何取得1.5的Javac啊?
      

  5.   

    你这是语法错误,哪里能这么写java5.0里面的增强for循环是为了简化集合的迭代,在过去要这样写
    for (Iterator itr = employees.iterator(); itr.hasNext();) {
        Employee e = (Employee)itr.next();
        ....
    }现在是这样
    for (Employee e : employees) {
       ...
    }冒号后面必须是一个Collection,而你那个greeting是一个字符串怎么能放在里面
    上面回答的人也不仔细看问题,误导
      

  6.   

    回复人:fjw(微积分) ( 一级(初级)) 信誉:100  2006-06-27 11:04:00  得分:0

    谢谢ChDw(米):
    那该怎么办啊,我下载安装的是J2SDK1.5.0_?啊,如何知道Javac的版本号,如何取得1.5的Javac啊?---------------你已经知道了你的Javac版本号,你自己打了javac -version
    ava version "1.5.0_06"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
      

  7.   

    to leafxx(我是你装满回忆的盒饭,你的承诺) 你才是误导!他源程序中 greeting是 一个String[],JDK1.5中当然是支持 for(String g : greeting)
    你试过再来和我说话!
      

  8.   

    to leafxx(我是你装满回忆的盒饭,你的承诺) 还有,他打的是java -version而不是javac -version!javac -verson显示的格式应该是:
    javac 1.5.0_06
    javac: 无源文件你应该仔细看清楚再来说我
      

  9.   

    怪我,没有把全部的源程序贴出来,让 leafxx(我是你装满回忆的盒饭,你的承诺) 产生误会真不好意思:
    public class test
    {
        public static void main(String[] args)
        {
            String[] greeting = new String[3];
            greeting[0] = "Welcome to Core Java";
            greeting[1] = "by FengJiwei";
            greeting[2] = "and Tygs--Glg Corp.";        //有错误
            for (String g: greeting)
                System.out.println(g);        //下面的运行正常
            for (int i = 0; i < greeting.length; i++)
              System.out.println(greeting[i]);
        }
    }
    没有javac -version这个命令,那如何知道javac的版本号,我这个例子是照着Core Java 第七版写的,环境配置都正确。
      

  10.   

    如果没有javac -version则很可能是低版本的,看看你的Java.exe是在哪里的,运行同目录下的javac应该可以的(如果没有javac.exe则可能你安装的只是jre,你还需要另外下载jdk)
      

  11.   

    谢谢ChDw(米)
    我再重新装个J2SDK1.5.0_07试试
      

  12.   

    to ChDw(米)不好意思是我没注意看,我以为他的greeting是一个字符串,按照习惯集合或数组命名都是复数
    比如说是greetings,这样更清楚
    如果没有javac命令,看看你的系统环境变量是不是设置了正确版本的%JAVA_HOME%,还有path里有没有设置正确
      

  13.   

    谢谢各位大侠:
    我现在正在全面卸载J2sdk,一会再新装一个1.5.0_07试试
    我以前是安装的1.4,后又通过网络升级为1.5.0_06版本,不知这样为什么有错误呢,我看javac里根本没有-version这个参数,根据ChDw(米)的指点可能是老版本的,不管了,重新安装一个后再说吧!
    一会再来
      

  14.   

    非常感谢ChDw(米),真的是javac的版本号太低的原因为什么jdk自动升级把java.exe升级了,javac.exe却不自动升级,真是晕了,哈哈!再次感谢 ChDw(米) !