我需要帮助理解如何编写一定数量的整数(必须是1到10),并且一旦输入0(0将是0)最后一个数字)。到目前为止,我的代码是:
import java.util.Scanner;
public class countNum {
public static void main(String[] args) {
int[] array;
Scanner input = new Scanner(System.in);
System.out.println ("Enter in numbers (1-10) enter 0 when finished:");
int x = input.nextInt();
while (x != 0) {
if (x > 2 && x < 10) {
//Don't know what to put here to make array[] take in the values
}
else
//Can I just put break? How do I get it to go back to the top of the while loop?
}
}
}
}
我不明白如何同时初始化设置长度的数组,同时让扫描仪读取一定数量的未知长度的数字,直到输入0,然后循环停止输入数组的输入。
感谢您的任何帮助!
好的,这是更多细节: -
-
如果要动态增加数组,则需要使用
ArrayList
。您这样做: -List<Integer> numbers = new ArrayList<Integer>();
-
现在,在上面的代码中,您可以将
number
阅读语句(nextInt
)放在While循环中,因为您想定期阅读它。并在循环中放置条件,以检查输入号码是否为INT: -int num = 0; while (scanner.hasNextInt()) { num = scanner.nextInt(); }
-
此外,您可以自己移动。只需检查数字是否为
0
。如果不是0
,请将其添加到ArrayList
: -numbers.add(num);
-
如果它的
0
,请突破您的时循环。 -
,您不需要在循环中的
x != 0
条件,因为您已经在循环中检查了它。
在您的情况下,用户似乎能够输入任何数量的数字。在这种情况下,拥有数组并不是理想的,仅仅是因为在数组初始化之前需要知道数组的大小。但是您有一些选择:
- 使用arraylist。这是动态扩展的动态数据结构。
- 向用户询问他/她将要输入的数字数量,并用它来初始化数组。
- 创建一个阵列以对大小的某些假设为基础。
在两种情况2和3中,您还需要包括一些逻辑,这些逻辑将使程序停止时:(1)用户输入0(2)或用户提供的数字超过大小数组。
我建议坚持第一个解决方案,因为它更容易实现。
我强烈建议您使用Java收藏夹。
您可以将程序修复为
import java.util.ArrayList;
import java.util.InputMismatchException;
import java.util.List;
import java.util.Scanner;
public class arrayQuestion {
public static void main(String[] args) {
List<Integer> userInputArray = new ArrayList<Integer>();
Scanner input = new Scanner(System.in);
System.out.println("Enter 10 Numbers ");
int count = 0;
int x;
try {
do {
x = input.nextInt();
if (x != 0) {
System.out.println("Given Number is " + x);
userInputArray.add(x);
} else {
System.out
.println("Program will stop Getting input from USER");
break;
}
count++;
} while (x != 0 && count < 10);
System.out.println("Numbers from USER : " + userInputArray);
} catch (InputMismatchException iex) {
System.out.println("Sorry You have entered a invalid input");
} catch (Exception e) {
System.out.println("Something went wrong :-( ");
}
// Perform Anything you want to do from this Array List
}
}
我希望这能解决您的疑问。除此之外,如果用户输入上述任何字符或无效输入,则需要处理异常