循环退出条件的问题?

时间:2015-06-24 22:01:54

标签: java arraylist do-while

我正在尝试使用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中所有元素的列表?

2 个答案:

答案 0 :(得分:2)

您需要在循环的每次迭代中使用用户输入更新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)

     

返回一个新的字符串,它是一个子字符串   这个字符串。子字符串以指定的字符开头   index并延伸到此字符串的末尾。

您可以直接使用startsWith方法对此处提及的输入

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

答案 1 :(得分:0)

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

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