0
while (c>5){  
      if (myArray[a][b]>x && myArray[a][b]<y) System.out.println("Skaitlis " +a+ ". rindaa " +b+ ". kollonaa Ieklaujas intervaalaa ");
      else System.out.println("Skaitlis " +a+ ". rindaa " +b+ ". kollonaa Neieklaujas intervaalaa "+x);
if (a>3) b=b+1;
      if (a>3) a=0 ;

              else a=a+1;
      if (b>3) break;

       }    

我有一个 4 行 4 列的数组,我无法让循​​环在列之间切换(b 始终保持在 0)。

4

2 回答 2

0
while (c > 5) {  
  if (myArray[a][b]>x && myArray[a][b]<y) {
    System.out.println("Skaitlis " +a+ ". rindaa " +b+ ". kollonaa Ieklaujas intervaalaa ");
  } else {
    System.out.println("Skaitlis " +a+ ". rindaa " +b+ ". kollonaa Neieklaujas intervaalaa "+x);
  }
  if (a>3) {
    b=b+1;
  }
  if (a>3) {
    a=0 ;
  } else {
    a=a+1;
  }
  if (b>3) {
    break;
 }
}  

添加花括号可能会改变程序的逻辑,但它确实使它更具可读性。现在我们可以看到它会更好写

while (c > 5) {  
  if (myArray[a][b]>x && myArray[a][b]<y) {
    System.out.println("Skaitlis " +a+ ". rindaa " +b+ ". kollonaa Ieklaujas intervaalaa ");
  } else {
    System.out.println("Skaitlis " +a+ ". rindaa " +b+ ". kollonaa Neieklaujas intervaalaa "+x);
  }
  if (a > 3) {
    b = b+1;
    a = 0 ;
  } else {
    a = a+1;
  }
  if (b > 3) {
    break;
 }
} 

假设您开始了a=0并且b=0很明显您将访问 4x4 数组的每个元素。

我强烈建议您使用两个嵌套的 afor循环来重写它。

于 2013-10-22T18:48:01.997 回答
0

如果你的 aray 是 4x4 大小,你的代码应该抛出一个ArrayIndexOutOfBoundsException因此它会尝试访问myArray[4][0]

你应该改成这个;

if (a == 3) b=b+1;
if (a == 3) a=0 ;
else a=a+1;
if (b>3) break;
于 2013-10-22T18:56:04.783 回答