2012-01-30 84 views
-4

我遇到了这个代码的问题,请任何人都可以帮助我?在java中更新数组

import java.util.Scanner; 
class A{ 
    int p[]; 
    int m,i; 
    A(){ 
     p=new int[][10,20,30,40,50]; 
    } 
    int sum(int p,int m){ 
     p+=m; 
     return p; 
    } 
} 
class B{ 
    int i,m; 
    public static void main(String args[]){ 
     A object=new A(); 
     Scanner input=new input(System.in); 
     m=input nextInt(); 
     for(i=o;i<object.p.length;i++){ 
      if(m==object.p[i]){ 
       n=object.sum(object.p[i],m); 
       object.p[i]=n; 
      } 
     } 
     for(i=0;i<object.p.length;i++){ 
      System.out.println(p[i]);} 
     } 

当我以10作为输入,然后将其与第一阵列值相匹配,然后添加并成为20 ....但我的问题是,下一次,当我将再次运行程序,该值将不会改变(添加结果)....... 如何在更进一步计算的方法后更新p数组的值:? `

+0

请缩进您的代码 – shiraz 2012-01-30 09:37:33

+0

正确的语法错误 – 2012-01-30 09:37:36

回答

1

首先,你似乎有一个矩阵(二维数组),我看不出为什么。

其次,在你的第一个for循环中,你有字母'o'而不是零。输入错误? (复制粘贴代码代替)

此外,一个新的值保存到一个数组,只是指它的指数,像这样: p[1][1] = new value;(或你仿佛想:p[1] = new value;,但是这不是你该p )。

0

将结果(添加后)存储到新数组中。因此你的原始数组不会被改变。当你完成你的方法时,你可以将结果存储到原始数组中。

0

退出程序后,Java将进行垃圾回收。所以当你再次执行程序时,原始数组将被初始化。因此,要获得以前的数组值,您需要将数组存储到磁盘中。如果您仍想使用数组中已更改的值,则只能在程序执行期间执行此操作,无论是通过存储在新阵列中还是将扫描器置于循环中。