Übung – Schreibe Code, um alle Daten des Arrays ourAnimals anzuzeigen.

Abgeschlossen

In dieser Übung schreiben Sie die geschachtelte Schleifenstruktur und den Auswahlcodeblock zum Anzeigen der Informationen im ourAnimals-Array. Die detaillierten Aufgaben, die Sie während dieser Übung ausführen, sind:

  1. Äußere Schleife: Erstellen Sie die äußere Schleife, die die Liste der Tiere im ourAnimals-Array durchläuft.
  2. Datenüberprüfung: Schreiben Sie Code, der auf vorhandene Pet-Daten überprüft, und zeigt die Haustier-ID an, wenn Daten für ein Haustier vorhanden sind.
  3. Innere Schleife: Erstellen Sie eine innere Schleife, die alle Haustiermerkmale für Haustiere mit zugewiesenen Daten anzeigt.
  4. Überprüfungstest: Führen Sie Überprüfungstests für den Code aus, den Sie in dieser Übung entwickeln.

Von Bedeutung

Sie müssen die vorherige Übung in diesem Modul abschließen, bevor Sie diese Übung starten.

Erstellen einer Schleife zum Durchlaufen des ourAnimals-Arrays

In dieser Aufgabe erstellen Sie die äußere for-Schleife, die zum Durchlaufen der Liste der Tiere im ourAnimals-Array verwendet wird. Sie untersuchen die Beziehung zwischen den Dimensionen Ihres Arrays und den Parametern der for Schleife. Sie berücksichtigen auch die Unterschiede zwischen der Verwendung von for Anweisungen und foreach Anweisungen beim Arbeiten mit multidimensionalen Arrays.

  1. Stellen Sie sicher, dass Visual Studio Code geöffnet ist und ihre Program.cs Datei im Editor sichtbar ist.

  2. Suchen Sie innerhalb des Codeblocks für die switch(menuSelection) Selection-Anweisung die folgenden Codezeilen:

    case "1":
        // List all of our current pet information
        Console.WriteLine("this app feature is coming soon - please check back to see progress.");
        Console.WriteLine("Press the Enter key to continue.");
        readResult = Console.ReadLine();
        break;
    
  3. Löschen Sie die Console.WriteLine() Anweisung, mit der die Meldung "In Kürze verfügbar" angezeigt wird, und lassen Sie eine leere Codezeile unterhalb der // List all of our current pet information Codekommentarzeile.

    Die Feedbacknachricht wird nicht benötigt, da Sie den Inhalt des ourAnimals Arrays anzeigen. Während Sie den Code entwickeln, der den anderen Menüauswahlen entspricht, werden diese Feedbacknachrichten ebenfalls aktualisiert.

    Übernehmen Sie die Nachricht Press the Enter key to continue..

  4. Beginnen Sie in der erstellten leeren Codezeile wie folgt mit einer for-Anweisung:

    for ()
    {
    }
    
  5. Nehmen Sie sich eine Minute Zeit, um zu überlegen, was Sie mit dieser for Aussage erreichen müssen.

    Denken Sie daran, dass eine for Anweisung drei Teile enthält, die steuern, wie Iterationen implementiert werden: den Initialisierer, die Bedingung und den Iterator. Die dem Initialisierer zugewiesenen Werte für die Bedingung und für iterator basieren auf dem, was Sie mit der for Anweisung erreichen müssen.

    In diesem Fall wird die for-Schleife verwendet, um das ourAnimals-Array zu durchlaufen. Sie wissen, dass Arrays Null indiziert sind, was bedeutet, dass ein Array mit n Elementen von 0 bis n-1 indiziert wird. Sie benötigen den for-Initialisierer, die for-Bedingung und den for-Iterator, um die Dimensionen des Arrays abzugleichen. In diesem Fall soll die for-Schleife bei 0 beginnen, um 1 erhöht werden und bei maxPets-1 enden.

    Ihr ourAnimals Array wird wie folgt deklariert: string[,] ourAnimals = new string[maxPets, 6];. Sie wissen, dass der maxPets zugewiesene Wert 8 ist. Gibt in dieser Deklaration maxPets die Anzahl der Elemente in der ersten Dimension des Arrays an, nicht die nullbasierte Indexnummer, die Sie zum Verweisen auf Elemente im Array verwenden. Trotz maxPets = 8 liegen die Arrayindexnummern zwischen 0 und 7.

  6. Um den Steuerelementwert Ihrer for-Schleife anzugeben, ändern Sie Ihren Code wie folgt:

    for (int i = 0; i < maxPets; i++)
    {
    }
    

    Wie Sie sehen, entspricht die Festlegung des for-Initialisierers auf int i = 0; dem nullbasierten Arrayindex. Ebenso entspricht die Festlegung der for-Bedingung auf i < maxPets; der ersten Dimension des Arrays. Wenn Sie schließlich den for-Iterator auf i++ festlegen, wird der Schleifen-Steuerelementwert für jede Iteration um 1 erhöht.

  7. Überlegen Sie kurz, welche Auswirkungen die Wahl einer for-Anweisung bzw. einer foreach-Anweisung beim Durchlaufen des ourAnimals-Arrays hat.

    Das Ziel ist es, jedes Tier im ourAnimals-Array einzeln zu durchlaufen. Warum sollten Sie also keine foreach-Schleife verwenden? Schließlich wissen Sie, dass die foreach Anweisung für Fälle konzipiert ist, wenn Sie jedes Element in einem Array von Elementen durchlaufen möchten.

    Der Grund, warum Sie in dieser Situation keine foreach-Schleife verwenden, ist, dass es sich beim ourAnimals-Array um ein mehrdimensionales Array handelt. Da ourAnimals ein mehrdimensionales Zeichenfolgenarray ist, ist jedes in ourAnimals enthaltene Element ein separates Element vom Typ „string“. Wenn Sie eine foreach Schleife zum Durchlaufen von ourAnimals verwendet haben, wird foreach jede Zeichenfolge als separates Element in einer Liste von 48 Zeichenfolgenelementen erkennen (8 x 6 = 48). Die foreach Anweisung würde die beiden Arraydimensionen nicht separat verarbeiten. Mit anderen Worten: Eine foreach-Schleife erkennt 8-Zeilen von Zeichenfolgenelementen nicht, bei denen jede Zeile eine Spalte mit 6-Elementen enthält. Da Sie gleichzeitig mit einem Tier arbeiten und alle sechs tierischen Merkmale während einer einzelnen Iteration verarbeiten möchten, ist eine foreach Aussage nicht die richtige Wahl.

    Wenn das ourAnimals-Array jedoch ein Jagged Array ist, das als Array von Zeichenfolgenarrays konfiguriert ist, könnten Sie eine foreach-Anweisung verwenden. In diesem Fall würden Sie eine foreach für eine äußere Schleife und eine zweite foreach für eine innere Schleife erstellen. Die äußere Schleife durchläuft dann die Elemente im Zeichenfolgenarray im Jagged Array. Die Zeichenfolgenarrays sind die „Zeilen“ im zweidimensionalen Array. Die innere Schleife würde die Zeichenfolgenelemente in den Zeichenfolgenarrays durchlaufen. Die Zeichenfolgenelemente in den Zeichenfolgenarrays sind die „Spalten“ im zweidimensionalen Array.

    Im folgenden Codebeispiel wird der Ansatz des Jagged Arrays veranschaulicht.

    string[][] jaggedArray = new string[][]
    {
        new string[] { "one1", "two1", "three1", "four1", "five1", "six1" },
        new string[] { "one2", "two2", "three2", "four2", "five2", "six2" },
        new string[] { "one3", "two3", "three3", "four3", "five3", "six3" },
        new string[] { "one4", "two4", "three4", "four4", "five4", "six4" },
        new string[] { "one5", "two5", "three5", "four5", "five5", "six5" },
        new string[] { "one6", "two6", "three6", "four6", "five6", "six6" },
        new string[] { "one7", "two7", "three7", "four7", "five7", "six7" },
        new string[] { "one8", "two8", "three8", "four8", "five8", "six8" }
    };
    
    foreach (string[] array in jaggedArray)
    {
        foreach (string value in array)
        {
            Console.WriteLine(value);
        }
        Console.WriteLine();
    }
    

    Für die Contoso Pets-Anwendung ist es wahrscheinlich einfacher, ein mehrdimensionales Zeichenfolgenarray und geschachtelte for-Schleifen anstelle eines Jagged Arrays und geschachtelter foreach-Schleifen zu verwenden. Nachdem Sie nun sehen, wie jede Option funktioniert, können Sie ihre eigene Wahl in zukünftigen Codierungsprojekten treffen.

  8. Wählen Sie im Menü "Visual Studio Code-Datei " die Option "Speichern" aus.

  9. Öffnen Sie den Bereich "Integriertes Terminal" in Visual Studio Code, und geben Sie den Befehl ein, um Ihr Programm zu erstellen.

    Um das Integrationsterminal aus der EXPLORER-Ansicht zu öffnen, klicken Sie mit der rechten Maustaste auf "Starter", und wählen Sie dann "Im integrierten Terminal öffnen" aus. Sie können auch das Menü "Ansicht" oder "Terminal " verwenden, um den integrierten Terminalbereich zu öffnen.

    Um Ihr Programm zu erstellen, geben Sie den dotnet build Befehl über die Terminal-Eingabeaufforderung ein.

  10. Beheben Sie alle Buildfehler oder Warnungen, die angezeigt werden, bevor Sie fortfahren.

    Denken Sie daran, dass die Buildfehler- und Warnmeldungen Ihnen mitteilen, was das Problem ist und wo Sie es finden können. Bei der Behebung von Problemen empfiehlt es sich, mit den Problemen zu beginnen, die am Anfang des Codes auftreten und nach unten arbeiten.

  11. Schließen Sie das Panel „Terminal“.

Überprüfung vorhandener Haustierdaten und Ergebnis anzeigen

In dieser Aufgabe verwenden Sie eine if Anweisung, um jedes Haustier in dem ourAnimals Array zu finden, dem Daten zu Tiermerkmalen zugewiesen wurden. Wenn ein Haustier mit zugewiesenen Daten gefunden wird, zeigen Sie die PetID an. Wenn keine Daten zugewiesen sind, wird nichts angezeigt. Sie führen den Code aus, um zu überprüfen, ob Ihre for- und if-Anweisungen ordnungsgemäß funktionieren.

  1. Erstellen Sie eine leere Codezeile in Ihrem for Anweisungscodeblock wie folgt:

    for (int i = 0; i < maxPets; i++)
    {
    
    }    
    
  2. Um eine if Anweisung zu erstellen, die auf Daten für Haustier-ID überprüft, aktualisieren Sie Ihren Code wie folgt:

    for (int i = 0; i < maxPets; i++)
    {
        if (ourAnimals[i, 0] != "ID #: ")
        {
        }
    }    
    
  3. Nehmen Sie sich eine Minute Zeit, um zu überlegen, was diese if Aussage auswertet und warum.

    Betrachten Sie zunächst die linke Seite des Ausdrucks: ourAnimals[i, 0]. Beachten Sie, dass die Schleifensteuerungsvariable i verwendet wird, um das zu untersuchende Tier anzugeben. Wie Sie sich erinnern können, entspricht das 0 In [i, 0] dem petID Merkmal. Da die erste Dimension des Arrays der "Zahl" des Tieres entspricht, stellt diese Seite des Ausdrucks sicher, dass ihr Code den Wert überprüft, der für jedes Tier im Array zugewiesen petID ist.

    Zweitens sollten Sie die Wahl des Vergleichsoperators berücksichtigen. Beachten Sie, dass der nicht gleiche Operator !=verwendet wird. Der Ausdruck wird zu true ausgewertet, wenn der der petID zugewiesene Wert NICHT gleich dem Wert ist, der auf der rechten Seite der Gleichung, ourAnimals[i, 0], aufgeführt ist.

    Betrachten Sie drittens den Wert auf der rechten Seite der Formel. Beachten Sie, dass ein statischer Zeichenfolgenwert "ID #: " verwendet wird. Dies ist der Standardwert, der beim Generieren der Beispieldaten zugewiesen petID ist. Wenn einem Tier Merkmale zugewiesen werden, wird der petID Wert aktualisiert und ist NICHT gleich dem Standardwert.

    Dies gibt an, dass der Codeblock der if-Anweisung ausgeführt wird, wenn für das aktuell überprüfte Tier Merkmale definiert sind.

    Hinweis

    Dies ist ein gutes Beispiel für die Verwendung von !=. Sie achten nicht darauf, welchen Wert petID zugewiesen ist, Hauptsache, es ist nicht der Standardwert.

  4. Um eine Console.WriteLine() Methode zu erstellen, die petID innerhalb des Codeblocks der if-Anweisung anzeigt, aktualisieren Sie den Code wie folgt:

    for (int i = 0; i < maxPets; i++)
    {
        if (ourAnimals[i, 0] != "ID #: ")
        {
            Console.WriteLine(ourAnimals[i, 0]);
        }
    }    
    

    Beachten Sie, dass ein Arrayelement beim Aufrufen der WriteLine() Methode als Argument verwendet werden kann.

  5. Wählen Sie im Menü "Visual Studio Code-Datei " die Option "Speichern" aus.

  6. Öffnen Sie den Bereich "Integriertes Terminal", und geben Sie den Befehl ein, um Ihr Programm zu erstellen.

  7. Beheben Sie alle Buildfehler oder Warnungen, die angezeigt werden, bevor Sie fortfahren.

  8. Geben Sie an der Terminal-Eingabeaufforderung den Befehl ein, um Ihr Programm auszuführen.

    Geben Sie den dotnet run Befehl an der Terminal-Eingabeaufforderung ein, um den Programmcode auszuführen.

    Wenn Ihr Code einen Laufzeitfehler generiert, beheben Sie die Fehler, speichern Sie Ihre Updates, und starten Sie die Anwendung neu.

  9. Geben Sie an der Terminaleingabeaufforderung 1 ein, um zu überprüfen, ob Ihre neue Codelogik wie erwartet funktioniert.

    Die folgenden petID Werte sollten angezeigt werden:

    ID #: d1
    ID #: d2
    ID #: c3
    ID #: c4
    Press the Enter key to continue.
    

    Diese IDs entsprechen den Haustieren, denen Daten zugewiesen wurden.

    Wenn ihr Code beim Auswählen der Menüoption 1 andere Ausgabe anzeigt, überprüfen und aktualisieren Sie den Code. Denken Sie daran, dass Sie Ihre Program.cs Datei speichern müssen, nachdem Sie Aktualisierungen vorgenommen haben.

  10. Beenden Sie die Anwendung, und schließen Sie dann den Terminalbereich.

Alle Merkmale von Haustieren mit zugewiesenen Daten anzeigen

In dieser Aufgabe erstellen Sie eine for Schleife innerhalb des if Anweisungscodeblocks, der verwendet wird, um alle Merkmale des aktuellen Haustiers anzuzeigen.

  1. Suchen Sie im Code-Editor die folgenden Codezeilen in ihrer Program.cs Datei:

    for (int i = 0; i < maxPets; i++)
    {
        if (ourAnimals[i, 0] != "ID #: ")
        {
            Console.WriteLine(ourAnimals[i, 0]);
        }
    }    
    
  2. Um die for Schleife zu erstellen, die die Merkmale jedes Haustiers durchlaufen soll, aktualisieren Sie Den Code wie folgt:

    for (int i = 0; i < maxPets; i++)
    {
        if (ourAnimals[i, 0] != "ID #: ")
        {
            Console.WriteLine(ourAnimals[i, 0]);
            for (int j = 0; j < 6; j++)
            {
            }
        }
    }    
    

    Beachten Sie, dass Sie jetzt eine zweite for Schleife haben, die innerhalb des Code-Blocks der ersten for Schleife „geschachtelt“ ist. Wie Sie wissen, durchläuft die äußere Schleife die Tiere im ourAnimals-Array. Die Absicht besteht darin, dass die innere Schleife die Merkmale jedes Tiers durchlaufen soll. Da die Tierdaten in einem mehrdimensionalen Array gespeichert werden, ist es leicht, auf tierliche Merkmale zuzugreifen.

  3. Nehmen Sie sich eine Minute Zeit, um die eingegebene for Erklärung zu überprüfen.

    Beachten Sie, dass die Variable des Schleifensteuerelements benannt jist. Wenn Sie for-Schleifen schachteln, besteht ein herkömmlicher Ansatz darin, i in der äußeren und j in der inneren Schleife zu verwenden. Die folgenden Konventionen erleichtern es anderen Benutzern, Ihren Code zu lesen.

    Da für jedes Tier sechs Merkmale gespeichert werden, ist der int j = 0; und der Zustandj < 6;. Diese Kombination aus Initialisierung und Bedingung entspricht dem benötigten Arrayindexbereich. 0 - 5

  4. Um jedes Merkmal eines Haustiers in einer separaten Zeile anzuzeigen, aktualisieren Sie Ihren Code wie folgt:

    for (int i = 0; i < maxPets; i++)
    {
        if (ourAnimals[i, 0] != "ID #: ")
        {
            Console.WriteLine(ourAnimals[i, 0]);
            for (int j = 0; j < 6; j++)
            {
                Console.WriteLine(ourAnimals[i, j]);
            }
        }
    }    
    
  5. Nehmen Sie sich eine Minute Zeit, um die geschachtelte Struktur zu berücksichtigen, die Sie erstellt haben, und die angezeigte Ausgabe, die Ihr Code erzeugt.

    Beachten Sie, dass der an der Konsole ausgegebene Wert ourAnimals[i, j] die Schleifensteuervariablen aus der äußeren und inneren for-Schleife verwendet.

    Sie kennen die folgenden Elemente:

    • Die erste Dimension des ourAnimals Arrays entspricht den verschiedenen Haustieren.
    • Die zweite Dimension des ourAnimals Arrays entspricht den Merkmalen jedes Haustiers.
    • Die if-Anweisung verhindert, dass die innere Schleife ausgeführt wird, wenn dem aktuellen Haustier keine Daten zugewiesen sind.
    • Die innere Schleife schließt alle Iterationen für jede Iteration der äußeren Schleife ab.

    Daher wissen Sie, dass die Merkmale jedes Tieres wie vorgesehen angezeigt werden.

  6. Aktualisieren Sie den Code wie folgt, um die PetID-Nachricht durch ein leeres WriteLine()Element zu ersetzen:

    for (int i = 0; i < maxPets; i++)
    {
        if (ourAnimals[i, 0] != "ID #: ")
        {
            Console.WriteLine();
            for (int j = 0; j < 6; j++)
            {
                Console.WriteLine(ourAnimals[i, j]);
            }
        }
    }    
    

    Durch diese letzte Änderung ist es einfacher, zwischen den Haustieren zu unterscheiden, wenn die Ausgabe an der Konsole angezeigt wird.

  7. Wählen Sie im Menü "Visual Studio Code-Datei " die Option "Speichern" aus.

  8. Öffnen Sie einen Terminalbereich, und erstellen Sie das Programm.

  9. Beheben Sie alle Buildfehler oder Warnungen, die angezeigt werden, bevor Sie fortfahren.

Überprüfen Sie Ihre Arbeit

In dieser Aufgabe führen Sie Ihre Anwendung über das integrierte Terminal aus und stellen sicher, dass Ihre geschachtelte Kombination aus for und if Anweisungen das erwartete Ergebnis erzeugt.

  1. Öffnen Sie bei Bedarf das Visual Studio Code-Panel „Integriertes Terminal“.

  2. Geben Sie an der Terminal-Eingabeaufforderung dotnet run ein.

  3. Geben Sie im Terminal-Eingabefeld 1 ein.

  4. Stellen Sie sicher, dass die Haustierdaten für die vier Haustiere angezeigt werden, denen Daten zugewiesen wurden.

    ID #: d1
    Species: dog
    Age: 2
    Nickname: lola
    Physical description: medium sized cream colored female golden retriever weighing about 65 pounds. housebroken.
    Personality: loves to have her belly rubbed and likes to chase her tail. gives lots of kisses.
    
    ID #: d2
    Species: dog
    Age: 9
    Nickname: loki
    Physical description: large reddish-brown male golden retriever weighing about 85 pounds. housebroken.
    Personality: loves to have his ears rubbed when he greets you at the door, or at any time! loves to lean-in and give doggy hugs.
    
    ID #: c3
    Species: cat
    Age: 1
    Nickname: Puss
    Physical description: small white female weighing about 8 pounds. litter box trained.
    Personality: friendly
    
    ID #: c4
    Species: cat
    Age: ?
    Nickname:
    Physical description:
    Personality:
    Press the Enter key to continue.
    

    Hinweis

    Wenn die erwarteten Ergebnisse nicht angezeigt werden, stellen Sie sicher, dass Sie die aktualisierte Program.cs Datei gespeichert haben. Wenn die erwarteten Ergebnisse nicht angezeigt werden und Sie das Problem nicht identifizieren können, können Sie den Program.cs Code im Endgültigen Ordner untersuchen. Der endgültige Ordner ist im Rahmen des Downloads enthalten, den Sie während des Setups abgeschlossen haben. Es wird empfohlen, zeitlang zu versuchen, Syntax- und Logikproblem in Ihrem Code zu identifizieren und zu beheben, bevor Sie die Program.cs Datei im endgültigen Ordner überprüfen.

  5. Beenden Sie die Anwendung, und schließen Sie dann den Terminalbereich.