Java 通过扫描仪获取输入并仅使用for循环创建数组,而不是 私有静态int[]arr; 公共静态void inputarrays(){ 扫描仪扫描=新扫描仪(System.in); System.out.println(“数组的长度”); int x=scan.nextInt(); arr=新整数[x]; System.out.println(“数组的值”); 对于(int n=0;n
我查阅了如何编写代码以获取用户输入并创建如下数组:Java 通过扫描仪获取输入并仅使用for循环创建数组,而不是 私有静态int[]arr; 公共静态void inputarrays(){ 扫描仪扫描=新扫描仪(System.in); System.out.println(“数组的长度”); int x=scan.nextInt(); arr=新整数[x]; System.out.println(“数组的值”); 对于(int n=0;n,java,arrays,Java,Arrays,我查阅了如何编写代码以获取用户输入并创建如下数组: 看起来我的代码和链接上的代码一样,这意味着它应该正常工作。但是,当我输入数组的值时,扫描仪从不关闭。我尝试了scan.close(),但没有成功。此外,我不能将try&exception用于此项 此方法有效,请尝试: private static int[] arr; public static void inputarrays() { Scanner scan = new Scanner(System.in); Syste
看起来我的代码和链接上的代码一样,这意味着它应该正常工作。但是,当我输入数组的值时,扫描仪从不关闭。我尝试了
scan.close()
,但没有成功。此外,我不能将try&exception用于此项 此方法有效,请尝试:
private static int[] arr;
public static void inputarrays() {
Scanner scan = new Scanner(System.in);
System.out.println("length of an array");
int x = scan.nextInt();
arr = new int[x];
System.out.println("values of an array");
for(int n = 0; n < x; x++) {
arr[n] = scan.nextInt();
}
}
私有静态int[]arr;
公共静态void main(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
System.out.println(“数组的长度”);
int x=scan.nextInt();
scan.nextLine();
arr=新整数[x];
System.out.println(“数组的值”);
对于(int n=0;n您在循环中使用了n
,因此您必须选择n++
,而不是x++
private static int[] arr;
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("length of an array");
int x = scan.nextInt();
scan.nextLine();
arr = new int[x];
System.out.println("values of an array");
for(int n=0; n<x; n++){
arr[n]=scan.nextInt();
scan.nextLine();
}
}
私有静态int[]arr;
公共静态void inputarrays(){
扫描仪扫描=新扫描仪(System.in);
System.out.println(“数组的长度”);
int x=scan.nextInt();
arr=新整数[x];
System.out.println(“数组的值”);
对于(int n=0;n
它应该是这样工作的。将x++更改为n++我更改了它,但扫描仪仍然没有停止添加这一行:scan.nextLine();
在每次scan.nextLine()之后
谢谢您的编辑,下次它不起作用时,我会按照格式来做。我应该在方法内部创建一个新数组,而不是在数据字段中声明它吗?我必须在数据字段中声明arr,这就是为什么我将它放在方法外部。如果我这样做,它会保留错误吗?nextLine()
s在这里是多余的。arr
是在第一行的问题中声明的。@Ivar我也这么认为,但我在没有nextLine()的情况下运行代码的2次中有1次;在InteliJ中,循环不会停止。@Ivar在将输入与nextLine()和nextInt()混合时肯定会有问题。在只有nextLine()的情况下我也从来没有遇到过任何问题。但这可能会发生,只是为了安全起见……这个答案没有其他答案中没有提到过的。
private static int[] arr;
public static void inputarrays() {
Scanner scan = new Scanner(System.in);
System.out.println("length of an array");
int x = scan.nextInt();
arr = new int[x];
System.out.println("values of an array");
for(int n = 0; n < x; n++) {
arr[n] = scan.nextInt();
}
}