0

为什么我的循环不起作用?

样本输出:

杰克吉尔鲍
勃玛莎
_

for 循环反向的示例输出:

玛莎
鲍勃吉
尔杰克
_

public static void main(String[] args)
{      
    Scanner kb = new Scanner(System.in);
    System.out.println("Enter a String");
    String []x;
    x= new String[5];
    for(int i=0; i<args.length; i++)
    { 
       x[i]= kb.next();
    }   

    for(int i=5; i<=0; i--)
    { 
        System.out.println(x[i]);
    }             
}
}
4

3 回答 3

4

您的 for 循环条件i<= 0将是falseasi = 5并且数组在 java 中从零开始索引。

 for(int i=5; i >= 0; i--) // the condition i <=0 will not met if used
    { 
        System.out.println(x[i]); // it will give ArrayIndexOfBound Exception
    } 

你应该从i = 4to开始0;最安全的方法是写:

 for(int i= x.length -1; i >= 0; i--)
  { 
            System.out.println(x[i]); 
  }
于 2013-10-22T00:57:53.543 回答
1

只要for条件为真,循环就会运行。5<=0不是真的,所以你永远不会进入循环。

于 2013-10-22T00:56:29.287 回答
1

使用 Collections.reverse

String[] s = new String[] {"one","two","three","four", "five"};
System.out.println(Arrays.deepToString(s));
Collections.reverse(Arrays.asList(s));
System.out.println(Arrays.deepToString(s));

这打印:

 [one, two, three, four, five]
 [five, four, three, two, one]
于 2013-10-22T01:37:05.353 回答