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