【发布时间】:2013-11-04 21:11:14
【问题描述】:
我之前问了一个问题,从那以后我稍微编辑了我的代码,但现在我的代码在我读入完成时不会停止它不会停止。
public class Done {
public static void main(String[] args){
Scanner kb = new Scanner(System.in);
ArrayList<String> sal = new ArrayList<String>();
int count = 0;
while (true){
sal.add(kb.next());
if (sal.equals("done"))
break;
count++;
}
display(sal);
displayb(sal);
}
public static void display(ArrayList<String> sal){
for (int i=0; i<sal.size(); i++)
System.out.print(sal.get(i)+ " ");
System.out.println();
}
public static void displayb(ArrayList<String> sal){
for (int z = sal.size(); z >= 1; z--)
System.out.print(sal.get(z-1) + " ");
System.out.println();
}
}
当我输入短语“完成”时,我的代码不会停止。有谁知道我可能做错了什么?
【问题讨论】:
-
你永远不应该使用 break 来结束循环......你应该反转你想要的语句并将它放在 while 循环中。
-
@Dom 对不起,我不知道你在哪里听到的,但这是胡扯。您不能总是将所需语句的
!放在while条件中。你不能在这里做,因为你必须先做输入。而你能做到的唯一方法是编写输入调用kb.next()两次,这是重复的代码,这是比break更应该避免的事情。还有其他方法可以重写代码以避免break,但它们会降低可读性。
标签: java for-loop arraylist while-loop java.util.scanner