So prüfen Sie, ob ein Array in Java nur positive Zahlen enthält

JavaJavaBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie in Java prüfen können, ob ein Array nur positive Zahlen enthält. Wir werden verschiedene Ansätze untersuchen, um dies zu erreichen. Wir beginnen mit einer grundlegenden Methode, die eine Schleife verwendet, um durch das Array zu iterieren und jedes Element einzeln zu prüfen.

Nach der einfachen Schleifenmethode werden wir uns mit der Java Stream API befassen, einer moderneren und oft kompakteren Möglichkeit, Sammlungen zu verarbeiten. Abschließend werden wir besprechen, wie man Null- und negative Zahlen im Zusammenhang mit der Prüfung behandelt, ob ein Array nur positive Werte enthält. In diesem Lab erhalten Sie praktische Fähigkeiten in der Manipulation von Arrays und der bedingten Logik in Java.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/DataStructuresGroup(["Data Structures"]) java(("Java")) -.-> java/ProgrammingTechniquesGroup(["Programming Techniques"]) java(("Java")) -.-> java/FileandIOManagementGroup(["File and I/O Management"]) java/BasicSyntaxGroup -.-> java/if_else("If...Else") java/BasicSyntaxGroup -.-> java/for_loop("For Loop") java/DataStructuresGroup -.-> java/arrays("Arrays") java/ProgrammingTechniquesGroup -.-> java/lambda("Lambda") java/FileandIOManagementGroup -.-> java/stream("Stream") subgraph Lab Skills java/if_else -.-> lab-559999{{"So prüfen Sie, ob ein Array in Java nur positive Zahlen enthält"}} java/for_loop -.-> lab-559999{{"So prüfen Sie, ob ein Array in Java nur positive Zahlen enthält"}} java/arrays -.-> lab-559999{{"So prüfen Sie, ob ein Array in Java nur positive Zahlen enthält"}} java/lambda -.-> lab-559999{{"So prüfen Sie, ob ein Array in Java nur positive Zahlen enthält"}} java/stream -.-> lab-559999{{"So prüfen Sie, ob ein Array in Java nur positive Zahlen enthält"}} end

Schleife durch ein Array für die Prüfung auf positive Zahlen

In diesem Schritt lernen wir, wie man in Java durch ein Array von Zahlen iteriert und prüft, ob jede Zahl positiv ist. Dies ist eine grundlegende Operation in der Programmierung, die es uns ermöglicht, Datenmengen zu verarbeiten.

Zunächst erstellen wir eine neue Java-Datei namens PositiveCheck.java in Ihrem ~/project-Verzeichnis. Sie können dies tun, indem Sie mit der rechten Maustaste im Dateiexplorer links klicken und "Neue Datei" auswählen, und dann PositiveCheck.java eingeben.

Öffnen Sie nun die Datei PositiveCheck.java im Editor und fügen Sie den folgenden Code hinzu:

public class PositiveCheck {

    public static void main(String[] args) {
        // Define an array of integers
        int[] numbers = {10, -5, 20, 0, 15, -8};

        // Loop through the array
        for (int i = 0; i < numbers.length; i++) {
            // Get the current number
            int currentNumber = numbers[i];

            // Check if the number is positive
            if (currentNumber > 0) {
                System.out.println(currentNumber + " is a positive number.");
            }
        }
    }
}

Lassen Sie uns diesen Code analysieren:

  • public class PositiveCheck: Dies deklariert unsere Klasse, die mit dem Dateinamen übereinstimmt.
  • public static void main(String[] args): Dies ist die Hauptmethode, in der die Ausführung unseres Programms beginnt.
  • int[] numbers = {10, -5, 20, 0, 15, -8};: Diese Zeile deklariert ein Array von Ganzzahlen namens numbers und initialisiert es mit einigen Werten. Ein Array ist eine Sammlung von Elementen des gleichen Datentyps.
  • for (int i = 0; i < numbers.length; i++): Dies ist eine for-Schleife. Es handelt sich um eine Kontrollstruktur, die es uns ermöglicht, einen Codeblock mehrmals zu wiederholen.
    • int i = 0: Dies initialisiert eine Zählervariable i mit 0.
    • i < numbers.length: Dies ist die Bedingung, die vor jeder Iteration geprüft wird. Die Schleife wird fortgesetzt, solange i kleiner als die Länge des numbers-Arrays ist. numbers.length gibt uns die Anzahl der Elemente im Array.
    • i++: Dies erhöht den Zähler i um 1 nach jeder Iteration.
  • int currentNumber = numbers[i];: Innerhalb der Schleife greift diese Zeile auf das Element am aktuellen Index i aus dem numbers-Array zu und speichert es in einer Variablen namens currentNumber. Array-Indizes beginnen bei 0.
  • if (currentNumber > 0): Dies ist eine if-Anweisung. Sie prüft, ob die currentNumber größer als 0 ist.
  • System.out.println(currentNumber + " is a positive number.");: Diese Zeile wird nur ausgeführt, wenn die if-Bedingung wahr ist (d. h., die Zahl ist positiv). Sie gibt die positive Zahl gefolgt vom Text " is a positive number." aus.

Speichern Sie die Datei PositiveCheck.java (Strg+S oder Cmd+S).

Lassen Sie uns nun dieses Programm im Terminal kompilieren und ausführen. Stellen Sie sicher, dass Sie sich im ~/project-Verzeichnis befinden.

Kompilieren Sie den Code:

javac PositiveCheck.java

Wenn keine Fehler auftreten, wird eine Datei namens PositiveCheck.class erstellt.

Führen Sie nun den kompilierten Code aus:

java PositiveCheck

Sie sollten die Ausgabe sehen, die nur die positiven Zahlen aus dem Array anzeigt.

10 is a positive number.
20 is a positive number.
15 is a positive number.

Dies zeigt, wie man eine for-Schleife verwendet, um durch ein Array zu iterieren und eine Bedingung auf jedes Element anzuwenden. Im nächsten Schritt werden wir eine modernere Methode untersuchen, um ein ähnliches Ergebnis mit Java's Stream API zu erzielen.

Verwendung der Stream API für positive Zahlen

In diesem Schritt werden wir eine modernere und oft kompaktere Methode zur Verarbeitung von Sammlungen in Java erkunden: die Stream API. Mit Java 8 eingeführt, bieten Streams eine leistungsstarke Möglichkeit, Operationen wie Filtern, Abbilden und Reduzieren auf Datenmengen durchzuführen.

Wir werden unser vorheriges Beispiel ändern, um Streams zu verwenden, um die positiven Zahlen im Array zu finden.

Öffnen Sie erneut die Datei PositiveCheck.java im Editor. Ersetzen Sie den vorhandenen Code durch den folgenden:

import java.util.Arrays;

public class PositiveCheck {

    public static void main(String[] args) {
        // Define an array of integers
        int[] numbers = {10, -5, 20, 0, 15, -8};

        // Use Stream API to filter and print positive numbers
        Arrays.stream(numbers) // 1. Create a stream from the array
              .filter(number -> number > 0) // 2. Filter for positive numbers
              .forEach(number -> System.out.println(number + " is a positive number (Stream).")); // 3. Process each positive number
    }
}

Schauen wir uns die neuen Teile dieses Codes an:

  • import java.util.Arrays;: Wir müssen die Arrays-Klasse importieren, um ihre stream()-Methode zu verwenden.
  • Arrays.stream(numbers): Diese Zeile wandelt unser int-Array in einen IntStream um. Ein Stream ist keine Datenstruktur an sich, sondern eine Sequenz von Elementen, die verarbeitet werden kann.
  • .filter(number -> number > 0): Dies ist eine Zwischenoperation auf dem Stream. Die filter()-Methode nimmt ein Predicate (eine Funktion, die true oder false zurückgibt) und behält nur die Elemente, für die das Prädikat wahr ist. Hier ist number -> number > 0 ein Lambda-Ausdruck, eine kompakte Möglichkeit, eine Funktion zu schreiben. Es prüft, ob jede number im Stream größer als 0 ist.
  • .forEach(number -> System.out.println(number + " is a positive number (Stream)."));: Dies ist eine Endoperation. Endoperationen verbrauchen den Stream und produzieren ein Ergebnis. Die forEach()-Methode führt für jedes Element im Stream eine Aktion aus. Hier gibt es jede positive Zahl zusammen mit einer Nachricht aus.

Speichern Sie die Datei PositiveCheck.java.

Jetzt kompilieren und führen Sie das geänderte Programm im Terminal aus:

javac PositiveCheck.java
java PositiveCheck

Sie sollten die gleiche Ausgabe wie zuvor sehen, aber mit der aktualisierten Nachricht:

10 is a positive number (Stream).
20 is a positive number (Stream).
15 is a positive number (Stream).

Dies zeigt, wie die Stream API verwendet werden kann, um dasselbe Ergebnis wie die herkömmliche for-Schleife zu erzielen, oft mit lesbarerem und ausdrucksstärkerem Code, insbesondere für komplexere Operationen.

Behandlung von Null- und negativen Zahlen

In den vorherigen Schritten haben wir uns auf die Identifizierung positiver Zahlen konzentriert. Jetzt erweitern wir unser Programm, um auch Null- und negative Zahlen zu identifizieren. Dies gibt uns ein vollständigeres Bild der Zahlen in unserem Array.

Wir werden die Datei PositiveCheck.java erneut ändern, um mithilfe des herkömmlichen for-Schleifenansatzes Prüfungen auf Null- und negative Zahlen einzubeziehen. Dies ist oft einfacher, um die bedingte Logik mit if-else if-else-Anweisungen zu verstehen.

Öffnen Sie die Datei PositiveCheck.java im Editor. Ersetzen Sie den vorhandenen Code durch den folgenden:

public class PositiveCheck {

    public static void main(String[] args) {
        // Define an array of integers
        int[] numbers = {10, -5, 20, 0, 15, -8};

        // Loop through the array
        for (int i = 0; i < numbers.length; i++) {
            // Get the current number
            int currentNumber = numbers[i];

            // Check if the number is positive, negative, or zero
            if (currentNumber > 0) {
                System.out.println(currentNumber + " is a positive number.");
            } else if (currentNumber < 0) {
                System.out.println(currentNumber + " is a negative number.");
            } else {
                System.out.println(currentNumber + " is zero.");
            }
        }
    }
}

Hier ist, was neu ist:

  • else if (currentNumber < 0): Dies ist eine else if-Anweisung. Sie prüft, ob die currentNumber kleiner als 0 ist, aber nur, wenn die vorherige if-Bedingung (currentNumber > 0) falsch war.
  • else: Dies ist eine else-Anweisung. Der Code innerhalb des else-Blocks wird ausgeführt, wenn keine der vorhergehenden if- oder else if-Bedingungen wahr ist. In diesem Fall, wenn die Zahl nicht größer als 0 und nicht kleiner als 0 ist, muss sie 0 sein.

Speichern Sie die Datei PositiveCheck.java.

Jetzt kompilieren und führen Sie das geänderte Programm im Terminal aus:

javac PositiveCheck.java
java PositiveCheck

Sie sollten jetzt eine Ausgabe sehen, die jede Zahl im Array kategorisiert:

10 is a positive number.
-5 is a negative number.
20 is a positive number.
0 is zero.
15 is a positive number.
-8 is a negative number.

Dies zeigt, wie man if-else if-else-Anweisungen verwendet, um mehrere Bedingungen innerhalb einer Schleife zu behandeln. Dies ist ein grundlegendes Muster für Entscheidungen in der Programmierung.

Sie können ähnliche Ergebnisse auch mit der Stream API und fortschrittlicheren Techniken wie partitioningBy oder mehreren filter-Operationen erzielen. Aber die for-Schleife mit if-else if-else ist ein klarer und unkomplizierter Ansatz für diese spezifische Aufgabe, insbesondere für Anfänger.

Zusammenfassung

In diesem Lab haben wir gelernt, wie man prüft, ob ein Array in Java nur positive Zahlen enthält. Wir haben zwei Hauptmethoden untersucht: das Iterieren durch das Array mit einer for-Schleife und die Nutzung der Java Stream API.

Wir haben begonnen, indem wir eine Java-Klasse erstellt und eine for-Schleife verwendet haben, um jedes Element in einem Integer-Array zu untersuchen. Wir haben eine bedingte Prüfung (if (currentNumber > 0)) implementiert, um positive Zahlen zu identifizieren und auszugeben. Dieser grundlegende Ansatz hat gezeigt, wie man einzelne Elemente innerhalb eines Arrays zugreift und verarbeitet. Obwohl der bereitgestellte Inhalt nur die Schleifenmethode detailliert beschrieb, deutet die Struktur des Labs darauf hin, dass die folgenden Schritte die Stream API und die Behandlung von Null- und negativen Zahlen abdecken würden, um ein umfassendes Verständnis der verschiedenen Techniken für diese häufige Programmieraufgabe zu vermitteln.