java中的两个相关语句是否在for循环中相互覆盖

时间:2016-03-07 12:23:04

标签: java loops for-loop

我知道我是否有类似的周期:

for (int i=0;i<n;i++) { 
      a[i][0] =i+1;
}

我知道在第一次迭代中[0] [0] = 1; 在第二个中a [1] [0] = 2,依此类推

如果我再次拥有与上述相同的周期

for (int i=0;i<n;i++) {        
    a[i][j] =evl (a[i][0],b);
}

我知道在第一次迭代中我会得到一个[0] [0] = evl方法产生的东西 在第二个中,[1] [0] = evl方法产生的东西  因为我有固定的j循环,这里没有显示。现在,因为我使用evl方法的第一个参数,我已经习惯了我的第一个循环,我想使用它们如下:

 for (int i=0;i<n;i++) {
   a[i][0] = (byte) (i+ 1);       
     a [i][j]= (byte) evl (a[i][0],b);    
 }

现在我想知道我是否使用它们,因为它显示在最后一个循环中,我可以使用相同的值,因为我将使用它们作为第一个和第二个循环,只有一个语句。我担心他们是否可以互相覆盖。也许覆盖不是这里的确切词,因为java中的覆盖意味着其他与多态有关但我不知道使用什么词而不是覆盖。希望能够清楚我想要的东西

1 个答案:

答案 0 :(得分:1)

分配a[i][j] = (byte) evl (a[i][0],b);将在a[i][0]时覆盖a[i][0] = (byte) (i+ 1);分配给j==0的值。

您的代码中是否可以接受这一点很难说,因为您只发布了一小部分代码。

当然,您始终可以使用

替换第二个语句
a [i][j]= (byte) evl ((byte) (i+ 1),b);

这将消除可能因覆盖而产生的潜在问题,但如果不了解此循环的背景,很难说这是否是正确的事情。