[英]I'm unable to assign values to array index. I have to assign values to individual variables
[英]I'm unable to store values in array as it is showing error?
我必须从用户输入中获取数组的大小并将其存储,我还尝试将数组 ac 中的值存储到大小但是当我运行程序时,for 循环在显示边界异常错误后执行一次
import java.util.Scanner;
public class Odd {
int size;
int a[] = new int[size];
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter Size of array");
size = sc.nextInt();
for (int i = 0; i < size; i++) {
System.out.println("enter " + i + "th element");
a[i] = sc.nextInt();
}
System.out.println("your array is");
for (int i = 0; i < size; i++) {
System.out.print(a[i] + " ");
}
}
}
当你写
public class Odd
{
int size;
int a[]=new int[size];
然后每当构造Odd
时,都会a
创建为一个数组,其大小等于size
的当前值,即 0。
当你再写
size=sc.nextInt();
a
的大小不会更改为size
变量的新值。
您的代码有几处错误。
首先,static 方法 main 无法访问 size 和 a,因为它们是实例变量。 您需要将它们设为 static 或在 main 方法中将它们设为局部变量。
第二,规模为零。 您在不知道用户将输入什么大小的情况下创建数组。 该数组的大小为零。
第三,您不需要可变大小,因为您实际上并没有在其他任何地方使用它。
import java.util.Scanner;
public class Main{
public static void main(String[]args){
Scanner sc=new Scanner(System.in);
System.out.println("Enter Size of array");
int[] a = new int[sc.nextInt()];
for(int i=0;i<a.length;i++){
System.out.println("enter "+i+"th element");
a[i]=sc.nextInt();
}
System.out.println("your array is");
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
}
}
将数组初始化移动到 main 方法内部,因为创建数组时需要大小。
public class Odd {
static int size;
static int a[];
public static void main(String[]args){
Scanner sc=new Scanner(System.in);
System.out.println("Enter Size of array");
size=sc.nextInt();
a = new int[size];
for(int i=0;i<size;i++)
{
System.out.println("enter "+i+"th element");
a[i]=sc.nextInt();
}
System.out.println("your array is");
for(int i=0;i<size;i++)
{
System.out.print(a[i]+" ");
}
}
}
and here is the output
Enter Size of array
3
enter 0th element
1
enter 1th element
2
enter 2th element
3
your array is
1 2 3
创建数组时,size 的值默认为 0。这样做以获得更好的结果:
public class Odd
{
int size;
int a[];
public static void main(String[]args)
{
Scanner sc=new Scanner(System.in);
System.out.println("Enter Size of array");
size=sc.nextInt();
a = new int[size];
然后无论你必须做什么,你都可以做......
您实际上并不需要这些成员变量。
import java.util.Scanner;
public class SizeArray {
public static void main(String[]args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter Size of array: ");
int size = sc.nextInt();
int a[] = new int[size];
for(int i = 0; i < size;i ++) {
System.out.print("enter "+ i +"th element: ");
a[i]=sc.nextInt();
}
System.out.println("your array is");
for(int i = 0; i < size; i++) {
System.out.print(a[i]+" ");
}
sc.close();
}
}
您可以只输入 main function 而不是在创建后修改它们。
Output:
Enter Size of array: 4
enter 0th element: 1
enter 1th element: 2
enter 2th element: 3
enter 3th element: 4
your array is
1 2 3 4
顺便说一句,请以更具可读性的格式编写您的代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.