簡體   English   中英

使用for循環打印出二維數組中不同行和列的值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM