HOWTO · Java

Sentinel-Wert in Java

In diesem Artikel wird erklärt, was ein Sentinel-Wert in Java ist.

In einem Programmierkontext ist Sentinel ein bestimmter Wert, der verwendet wird, um eine Bedingung in einem rekursiven oder Schleifenalgorithmus zu beenden. Der Sentinel-Wert wird auf vielfältige Weise verwendet, z. B. als Dummy-Daten, Flag-Daten, Rouge-Wert oder Signalwert.

Verwendung des Sentinel-Werts in einer While-Schleife

Dieses Programm liest die Eingabe vom Benutzer und druckt das Produkt der eingegebenen Zahlen aus. In der Schleifenbedingung while, die beendet wird, ist number != 0. Dies ist der Sentinel-Wert, der die weitere Ausführung der Schleife stoppt. Es ermöglicht Benutzern zu wissen, wann sie mit der Eingabe fertig sind.

Der Wert Sentinel ist nicht der Teil der Eingabe, der verarbeitet werden soll.

Der Sentinel-Wert muss einen ähnlichen Datentyp haben, sollte sich jedoch von der normalen Eingabe unterscheiden. Es hängt streng von den Benutzeranforderungen ab, wie oft eine Wächter-gesteuerte Schleife ausgeführt werden soll.

Sie erhalten Eingaben vom Benutzer und verwenden die Klasse Scanner. Als solches wird ein Objekt input der Klasse Scanner erstellt.

Der Benutzer wird aufgefordert, eine beliebige Zahl außer 0 einzugeben, um fortzufahren. Um die Ausführung des Codes jedoch weiter zu stoppen, muss der Benutzer 0 eingeben.

Um die Eingabenummern vom Benutzer zu erhalten, rufen wir die Methode nextInt() am Objekt input auf. Der Benutzer entscheidet, wie oft die Schleife ausgeführt wird und wann sie beendet wird.

Die while-Schleife empfängt Zahlen vom Benutzer, bis die Zahl Null eingegeben wird. Wenn der Benutzer Null eingibt, sollte das Programm das Produkt aller eingegebenen Zahlen erzeugen.

In einer Wächter-gesteuerten Schleife kann der Benutzer die Schleife unter einer bestimmten Bedingung verlassen, da die Bedingung nicht von einem Zähler abhängt.

import java.util.Scanner;
public class SentinelTesting {
  public static void main(String[] args) {
    int enteredNum, numberMultiplied, counter;
    counter = 0;
    numberMultiplied = 1;
    Scanner scannerObj = new Scanner(System.in);
    System.out.println("To move ahead, enter a number other than 0");
    enteredNum = scannerObj.nextInt();
    while (enteredNum != 0) {
      numberMultiplied = numberMultiplied * enteredNum;
      counter++;

      System.out.println("To proceed, enter a number other than 0");
      enteredNum = scannerObj.nextInt();
    }
    System.out.println("The result of multiplying the entered numbers = " + numberMultiplied);
  }
}

Ausgabe:

To move ahead, enter a number other than 0
10
To proceed, enter a number other than 0
20
To proceed, enter a number other than 0
5
To proceed, enter a number other than 0
0
The result of multiplying the entered numbers = 1000