我试图编写一个代码,在其中对给定的数字列表进行排序,而我试图使用ArrayList进行编码。我正在使用while循环,以允许重复输入。这是我的代码:
import java.util.Scanner;
import java.util.ArrayList;
public class sortinggg {
public static Scanner keyboard = new Scanner(System.in);
public static ArrayList<Integer> number = new ArrayList<Integer>();
public static void main (String [] args) {
int count= 0;
System.out.println("Enter your numbers.");
while (keyboard.hasNextInt()); {
number.add(keyboard.nextInt());
}
现在整数无关紧要,因为我仅在对列表进行排序时使用它。
问题在于,即使输入了字符串(例如),输入数字后,程序也不会继续执行下一行代码。我在这里想念什么吗?
P.S。我很疲倦地查找以前在该主题上提出的问题,但是建议的解决方案都不适合我。谢谢您的帮助!
答案 0 :(得分:1)
尝试一下:
import java.util.ArrayList;
import java.util.Scanner;
public class Main
{
public static void main(String args[])
{
Scanner keyboard = new Scanner(System.in);
ArrayList<Integer> number = new ArrayList<Integer>();
System.out.println("Enter your numbers:");
while (keyboard.hasNextInt()) {
number.add(keyboard.nextInt());
}
}
}
修改:
while (keyboard.hasNextInt());
中,删除semicolon(;)
。在这里while loop
会一直向arraylist
添加值,直到您提供整数值为止。
答案 1 :(得分:1)
首先在;
之后的while
是错误的。它不允许您执行身体。然后,您将如何跳过循环。您可以要求最终用户输入一些特殊值并使用它来打破循环。更正的版本如下。
public static void main(String[] args) {
int count = 0;
System.out.println("Enter your numbers or -1 to skip.");
while (keyboard.hasNextInt()) {
int num = keyboard.nextInt();
if (num == -1) {
break;
}
number.add(num);
}
System.out.println(number);
}