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 配列のすべての要素にアクセスすることは明らかです。

for2 つのネストされた aループを使用してこれを書き直すことを強くお勧めします。

于 2013-10-22T18:48:01.997 に答える
0

配列が 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 に答える