为什么我的循环不起作用?
示例输出:
杰克 吉尔
鲍勃
玛莎
for loop reverse的示例输出:
马大
鲍勃
吉尔
千斤顶
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]);
}
}
}
答案 0 :(得分:4)
您的for循环条件i<= 0
将false
为i = 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 = 4
开始到0
;最安全的方法是写:
for(int i= x.length -1; i >= 0; i--)
{
System.out.println(x[i]);
}
答案 1 :(得分:1)
只要条件为真,就会运行for
循环。 5<=0
不是真的,所以你永远不会进入循环。
答案 2 :(得分: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]