2015-12-01 24 views
0

所以我现在处于困境,无法弄清楚它是如何工作的。 说我有,我已宣布在全球范围内一类,像这样的数组:如何接受初始化数组大小的用户输入(该数组是全局声明的)JAVA

int[] x = new int[size]; 

我也有一个全局变量调用大小​​

int size; 

然而,它的价值是不是在这里声明。我想知道如何通过用户输入或通过方法调用将值传递给此全局变量。 我有另一种方式我可以全局声明一个数组,并以某种方式通过用户输入设置其大小?


谢谢你们的意见。但是,我似乎仍然对此有所疑惑。我被玩弄的Java Swing和写了下面的代码:

btnAdd.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent arg0) { 

      String text = input.getText(); 
      int b = Integer.parseInt(text); 
      array= new int[size]; 
      array[c]=b; 
      c++; 
         }}); 

代码的第一位本质上是一个按钮侦听,这需要从一个JTextField文本,将其转换为int,并将其添加到阵列中。我在类中全局初始化数组,但在按钮中实例化。我已经在课程中初始化'c'作为全局变量设置为0. 大小也取自设置为某个数字的全局变量。

JButton btnPrint = new JButton("print"); 
    btnPrint.addActionListener(
      new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 
      for(int q=0;q<size;q++){ 
       System.out.println(array[q]); 
      } 
     } 
    }); 

当我点击它时,这个按钮需要打印数组。但是我得到了一个非常奇怪的输出。例如,我将这些值输入到大小为3的数组中:'2','5','100'。 然后我会得到0,0,100的输出。就像只打印出数组的最后一个值。 需要这个帮助,请

+0

静态(全局)变量被初始化为w当该类在运行时被加载。如果'''size'在用户定义的值*初始化之前*加载了''x''的类,则可以用你描述的方式。 –

回答

2

声明数组没有初始化它:

int[] x; 

一旦一个值赋给size,实例化数组:

size = ... 
x = new int[size]; 
1

你可以做同样的,

int[] ary; // array declaration.... 
Scanner scan = new Scanner(System.in); // getting input from console.. 
int size = scan.nextInt(); // getting input from console and store into size 
if(size >= 0){ // check whether user has input proper value or not 
    ary = new int[size]; 
}else{ 
    System.out.println("Invalid Value Entered"); 
}