2014-07-11 88 views
0

这里需要一点建议, 我想要代码 创建一个包含任意六个名字的字符串数组。 使用增强的for循环数组 在这里,在打印的每个名字是我:字符串数组与增强for循环

public class names { 
    private static String[] arrayString; 
    private static String[] names; 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) {    
     String[][]firstnames={ 
     {"John", "Mary", "Harry", "Ray", "Sean", "Matthew" }, 
     }; 

     for (int row=0;row<firstnames.length;row++){ 
     for(int col=0; col<firstnames[row].length; col++){ 
      System.out.print(firstnames[row][col]+ " "); 
      System.out.println(); 
     } 
     }     
    }  
} 

我被告知,你已经使用固定的值上的拉环,而不是数组的长度条件。

这是更好地使用数组的长度为维护等

我已经花了很长时间试图找出哪里出了问题,据我可以看到我已经回答了这个问题。有人能指引我朝着正确的方向吗?

+2

_我被告知你已经使用固定值的循环条件,而不是array_的长度告诉你这是在说谎 –

+0

你是否有任何错误消息被抛出,或者你只是问你是否应该使用固定值? – Simon

+1

我认为他们试图告诉你的是,这不是一个增强的for循环。 https://blogs.oracle.com/CoreJavaTechTips/entry/using_enhanced_for_loops_with –

回答

2

如果我明白你的问题,那么我认为你想做一些具有增强foreach圈就是这样,

String[] firstNames = {"John", "Mary", "Harry", "Ray", "Sean", "Matthew" }; 
for (String name : firstNames) { 
    System.out.println(name); 
} 

每javadoc的链接,

当你看到冒号( :)将其读为“in”。上面的循环读作“对于c中的每个TimerTask t”。正如您所看到的,for-each构造与泛型完美地结合在一起。它保留了所有类型的安全性,同时消除了剩余的杂波。因为您不必声明迭代器,所以不必为其提供通用声明。 (编译器在你背后为你做这件事,但你不必担心它。)

+0

他有一个2d阵列。 (String [] names:firstNames) for(String name:names) System.out.println(name);' – qbit

+0

@xgeorgekx也许。但是当我认为firstNames我不认为二维数组。也许命名为2d数组,首先和最后....但firstNames应该是1d数组(我在代码中是这样做的)。 –

+0

嗯,你是对的。我赞同你。只是在他发布的代码中,他有一个名字为2d的数组。而且不像他解释他实际上想要用名字阵列做什么。无论如何,你有我的投票:P – qbit