循环退出条件的问题?

issue with exit condition of loop?

我正在尝试使用 while 条件,如果用户输入第一个字符为数字 1 的字符串,则循环应该结束。但是,在我的例子中,循环永远不会结束。我可能做错了什么?

public static void main(String[] args) { 

   ArrayList<Integer> instructions = new ArrayList<Integer>();
    Scanner keyboard = new Scanner(System.in);
    String input = "";
    String termIns = input.substring(0);
   // int termInsInt= Integer.parseInt(termIns);

    do {
        input = keyboard.nextLine();
        int inputInt = Integer.parseInt(input);
        instructions.add(inputInt);
        //String termIns = input.substring(0);

    } while(!termIns.equals("1"));

此外,什么会显示ArrayList中所有元素的列表?

您需要在每次循环迭代中使用用户输入更新 termIns

do {
        input = keyboard.nextLine();
        int inputInt = Integer.parseInt(input);
        instructions.add(inputInt);
        termIns = input.substring(0);

    } while(!termIns.equals("1"));

另外 substring(0) 对您没有帮助,因为

substring(int beginIndex)

Returns a new string that is a substring of this string. The substring begins with the character at the specified index and extends to the end of this string.

您可以直接在输入中使用 startsWith 方法,如此处所述

while(!input.startsWith("1"))

您没有更新 termsIn,这是您终止条件的一部分。

此外,您可以通过在 do-while 之外创建一个循环来显示 Arraylist 中的所有元素,该循环打印出 arraylist 中的所有元素。我会看一下 Arraylist 上的 javadoc。