[英]Printing out values of different rows and column in 2d array using for loops
我有這個第一行的二維數組是名字,第二行是姓氏。
String[][] ladrones2 = {
{"Phil", "Kim", "Phil", "Perry"},
{"Garcia", "Gimena", "Basinger", "Ornitorrinco"}};
最好的結果是讓它們打印出來,例如
Phill Garcia
Kim Gimena
etc...
現在我能夠通過捕獲 ArrayIndexOutOfBoundsException 異常來做到這一點,並且它可以工作,並且 output 是:
name Phil Garcia
name Kim Gimena
name Phil Basinger
name Perry Ornitorrinco
這很好,但我想知道是否有辦法做到這一點而不必捕獲異常? 我一直在尋找使這個更清潔的方法,但沒能做到。
目前的代碼:
public static void robo2() {
String[][] ladrones2 = {
{"Phil", "Kim", "Phil", "Perry"},
{"Garcia", "Gimena", "Basinger", "Ornitorrinco"}};
try {
for (int i = 0; i < ladrones2.length; i++) {
for (int j = 0; j < ladrones2[i].length; j++) {
System.out.println("name: " + ladrones2[i][j] + " " + ladrones2[i + 1][j]);
}
}
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("");
}
}
正如你所看到的,我在內部 for 循環中使用了i
變量的+1
,這反過來又引發了異常。
有任何想法嗎? 由於是 Java 的新手,我現在只想使用 2 個 forloops 保持這種工作方式。
如果您確定ladrones2
數組總是有 2 行,那么下面的代碼會更簡單:
public static void main(String[] args) {
String[][] ladrones2 = {
{"Phil", "Kim", "Phil", "Perry"},
{"Garcia", "Gimena", "Basinger", "Ornitorrinco"}};
for (int i = 0; i < ladrones2[0].length; i++) {
System.out.println("name: " + ladrones2[0][i] + " " + ladrones2[1][i]);
}
}
在這條線上:
System.out.println("name: " + ladrones2[i][j] + " " + ladrones2[i + 1][j]);
您同時從第一個和第二個數組中獲取一個元素,但是您正在循環此行中序列中的所有元素:
for (int i = 0; i < ladrones2.length; i++)
要糾正這個問題,您只需將i
的范圍縮小到ladrones.length-1
,否則您將到達數組的末尾並嘗試訪問此處不存在的下一個元素。
你最終會得到這一行:
for (int i = 0; i < ladrones2.length-1; i++) {
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.