java - 当我输入 "done"时我的程序不会停止

标签 java for-loop arraylist while-loop java.util.scanner

我之前问过一个问题,从那时起我对我的代码进行了一些编辑,但现在我的代码不会停止,当我读入 done 它不会停止。

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();
    }
 }

当我输入短语“完成”时,我的代码不会停止。有人知道我可能做错了什么吗?

最佳答案

您正在检查 ArrayList sal 是否等于字符串 "done" —— 这永远不会是真的。也许您想检查最新输入是否等于该字符串:

while (true)
{
    String input = kb.next();

    if (input.equals("done"))
        break;

    sal.add(input);
    count++;
}

关于java - 当我输入 "done"时我的程序不会停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19595111/

相关文章:

java - 我无法使用公共(public) IP 地址访问正在运行的 Tomcat 7.50

java - 如果不会发生争用,读取时是否需要同步

java - Spring 3 - Petclinic - Tomcat 7 中的 ${owner.new} 无效表达式

c# - 使用 for 循环渲染 TreeView

java - HashMap 字段不更新

java - 共享 ArrayList 的并发修改异常

java - 使用 Java 中的属性的用户配置文件

java - Java中如何获取for循环的最后一个值?

vba - 压缩大量(不切实际的)基于循环的 VBA 代码;嵌套 For...Next 循环

java - 如何从基本类型元素数组创建 ArrayList (ArrayList<T>)