我之前问了一个问题,从那以后我编辑了我的代码,但现在我的代码不会停止,当我读完时它不会停止。
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();
}
}
当我输入短语“done”时,我的代码不会停止。谁知道我可能做错了什么?
答案 0 :(得分:6)
您正在检查ArrayList
sal
是否等于字符串"done"
- 这将永远不会成立。也许您想检查最新输入是否等于该字符串:
while (true)
{
String input = kb.next();
if (input.equals("done"))
break;
sal.add(input);
count++;
}
答案 1 :(得分:1)
kb.next()
是您要比较的字符串。您需要将其保存在变量中:
String inputString = kb.next();
if (inputString.equals("done"))
break;
sal.add(inputString);
这也将解决不向数组添加"done"
的问题。