我需要帮助了解如何编写一个for循环,需要一定量的整数(必须为1至10),并停止采取在数字一旦进入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中 。 这个动态数据结构,其动态扩展。
- 问用户,他/她将要进入并使用它来初始化数组数的量。
- 创建一个阵列上的大小一些假设基础自己。
在这两种情况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
}
}
我希望这将解决您的疑问..超出这个u需要处理异常,如果用户输入任何字符或无效输入如上