Integer[][] a = new Integer[3][3];
int value1=1;
while(a !=null) {
System.out.println("Please enter the value of indexes");
i=input.nextInt();
j=input.nextInt();
int value= input.nextInt();
if(!(i<0||i>2 && j<0 || j>2)) {
if(a[i][j]== null) {
a[i][j]=value;
System.out.printf("value of a[%d][%d] =%d",i,j,a[i][j]);
}
else {
System.out.println("Index already has value");
}
}
else {
for(i=0;i<3;i++) {
for(j=0;j<3;j++) {
System.out.println(a[i][j]);
}
}
}
当循环的所有元素都获得值但无法正常工作时,我想退出循环,而
答案 0 :(得分:1)
a != null
,否则 Integer[][] a = new Integer[3][3];
在语句a = null
之后的所有点上都为true。 a != null
不检查数组内容。它只会检查数组是否存在。
如果要在a
的所有条目都不为空时停止循环,则可以改用while (Arrays.asList(myArray).contains(null))
。这将在每次while
循环迭代开始时检查该数组,并在该数组不包含任何空值时停止。
为获得更有效的选择,您还可以创建一个初始化为a.length
的计数器,并在每次填充数组插槽时将其递减。
Integer[][] a = new Integer[3][3];
int value1=1;
int remaining = a.length;
while (remaining > 0) {
System.out.println("Please enter the value of indexes");
i=input.nextInt();
j=input.nextInt();
int value= input.nextInt();
if(!(i<0||i>2 && j<0 || j>2)) {
if(a[i][j]== null) {
a[i][j]=value;
remaining--;