0
因此,這裏是我到目前爲止要去代碼:變化,並保持在一個二維數組的值在循環
static int[][] change() throws IOException {
BufferedReader ein = new BufferedReader(new InputStreamReader(System.in));
int i = 4;
int MatrixNew[][] = new int[i][i];
for (int i = 0; i < MatrixNew.length; i++) {
for (int j = 0; j < MatrixNew[i].length; j++) {
if (MatrixNew[i][j] == 0) { //edit: added content from above into if
System.out.println("Enter numbers:"); // numbers entered like so: zse
String zf = ein.readLine();
int z = Character.getNumericValue(zf.charAt(0));
int s = Character.getNumericValue(zf.charAt(1));
int e = Character.getNumericValue(zf.charAt(2));
MatrixNew[z][s] = e;
}
}
return MatrixNew;
}
我得到由0
個4×4場,除了4個特定位置。 通過輸入zse
我可以將所需位置([z][s]
)上的一個數字更改爲所需的值(e
)。它有點像數獨領域。
我不知道的是我如何有效地重複「位置更改值」功能來替換所有0
s。
我試了一下while循環(12重複(固定數量)),但該字段沒有保留我已經改變的數字,但再次顯示0
s。
編輯:添加了if
語句並將用戶輸入移動到if
。 如果所有的0
都被更改(正確的用戶輸入),則允許我重複用戶輸入12次,如果0
未被更改(可能是錯誤的用戶輸入),則允許我重複用戶輸入12次。
現在唯一缺少的是在每次用戶輸入後打印2D陣列。
你把環路放在哪裏?也許你不小心把'MatrixNew'的初始化放在循環中,導致它每次都被重置。 – Arc676
我把while循環放在change()被初始化的主函數中。 – Corazon