In der grundlegenden Java -Programmierung kann es Fälle geben, in denen man die Programmierung und die logischen Fähigkeiten verbessern möchte. Insbesondere ermöglicht es den Neulingen, einen etwas kniffligen Algorithmus zu erstellen oder Logik zu erstellen. Um einige gefilterte Werte basierend auf den Anforderungen abzurufen. In solchen Fällen die “
FizzbuzzDas Problem in Java unterstützt Anfänger bei der Verbesserung ihrer Codierungsfähigkeiten.
Dieser Artikel zeigt die Regeln und die Umsetzung des „Fizzbuzz“ -Problems in Java.
Was ist das „Fizzbuzz“ -Problem in Java?
Der "Fizzbuzz„Problem entspricht einem Spiel im wirklichen Leben, das von einer Gruppe von Menschen gespielt wird, die die folgenden Regeln haben:
- Die Abfolge der Kurven wird entschieden, bevor das Spiel gestartet wird.
- Der erste Spieler initiiert, indem es eine beliebige Zahl angibt, ich.e., “1”.
- Der nächste Spieler sagt die nächste Nummer und so weiter.
- Der schwierige Teil ist, dass das Wort “Sprudel"Wird gesagt, anstatt dass die Zahl mehrfach von" ist "3”.
- Ebenso das Wort “Summen"Heißt, wenn es (Nummer) ein Vielfaches von" ist "5”.
- Wenn die Zahl jedoch ein Vielfaches der beiden Zahlen ist “3" Und "5", das Wort "Fizzbuzz”Wird stattdessen verwendet.
Notiz: Die Regeln für die oben angegebenen Zahlen können sich ändern, i.e., “11" Und "13" usw.
So implementieren Sie das Problem „Fizzbuzz“ in Java?
Um die zu implementierenFizzbuzzProblem in Java, wenden Sie die folgenden Ansätze an:
- “ansonsten" Stellungnahme.
- “Ternär" Operator.
- “maptoobj ()" Und "Rangeclosed ()”Methoden.
Die folgenden Ansätze wenden eine Scheck auf die Zahlen an3" Und "5Und rufen Sie das entsprechende Wort auf.
Ansatz 1: Implementierung des Problems "Fizzbuzz" in Java mit "if/else" -Anweisung
Der "ansonsten”Anweisungsprüfungen für eine bestimmte Bedingung und ruft die entsprechende Anweisung auf. Diese Erklärung kann angewendet werden, um eine Überprüfung nach dem Auftreten der Zahlen gemäß den Regeln anzuwenden.
Beispiel
Überlegen wir das untergegewalte Beispiel:
öffentliche Klasse Fizzbuzz
public static void main (String args [])
für (int i = 1; i <= 20; i++)
if (i % 3 == 0 && i % 5 == 0)
System.aus.println ("fizzbuzz");
sonst wenn (i % 3 == 0)
System.aus.println ("fizz");
sonst wenn (i % 5 == 0)
System.aus.println ("Buzz");
anders
System.aus.println (i);
Verwenden Sie gemäß dem obigen Code die folgenden Schritte:
- Zunächst anwenden Sie eine “für"Schleife, um die Ganzzahlen bis" zu iterieren "20”.
- Überprüfen Sie in diesem Bereich, ob die Zahlen mehrfach von beiden sind “3" Und "5„Indem sie prüfen, ob sie vollständig teilbar sind und kein Rest zurückgelassen wird.
- Auf der zufriedenen Bedingung protokollieren Sie das Wort “FizzbuzzIn Übereinstimmung mit den Regeln.
- In ähnlicher Weise sind nach dem Auftreten der Zahlen mehrere von “3", Protokollieren Sie das Wort"Sprudel”.
- Zeigen Sie ebenfalls das Wort an “Summen"Wenn die Zahl ein Vielfaches von" ist "5”.
- Im "andersBedingung, die Nummer selbst wird auf der Konsole angezeigt.
Ausgang
In dieser Ausgabe kann beobachtet werden, dass die entsprechenden Wörter die Zahlen ersetzen, die mehrfach von “sind“3","5" oder beides.
Ansatz 2: Implementieren des „Fizzbuzz“ -Problems in Java mit dem „ternären Operator“
Der "TernärDer Bediener prüft auch eine bestimmte Bedingung und ruft den entsprechenden Block basierend auf den zufriedenen oder unzufriedenen Bedingungen auf. Dieser Bediener kann kombiniert mit dem “verwendet werdenWert von()”Methode, um auch auf die Spaltbarkeitsbedingung zu prüfen und das entsprechende Ergebnis als Zeichenfolge zu protokollieren.
Syntax
(Zustand) ? (aufrufen, wenn wahr): (aufrufen, wenn falsch);
Beispiel
Lassen Sie uns das folgende Beispiel durchlaufen, um das angegebene Konzept zu verstehen:
öffentliche Klasse Fizzbuzz2
public static void main (String args [])
für (int i = 1; i <= 20; i++)
String output = (i % 3 == 0 ? (i % 5 == 0 ? "Fizzbuzz": "Fizz"):
(i % 5 == 0 ? "Buzz": String.Wert von (i)));
System.aus.println (output);
Führen Sie nach diesem Code -Snippet die folgenden Schritte aus:
- Ebenso einfügen eine “fürSchleife, um die Ganzzahlen bis zur angegebenen Grenze zu iterieren.
- Überprüfen Sie in diesem Bereich die Bedingung so, dass wenn die Zahl ein Vielfaches von “ist“3", Rufen Sie den früheren Zustand nach" auf "?”. Wenn diese aufgerufene Bedingung (ein Vielfaches von 5) ebenfalls erfüllt ist, protokollieren Sie das Wort “Fizzbuzz”.
- Retiere das Wort „im Falle des ersteren zufriedenen Zustands zurück“ zurück. “Sprudel”.
- Andernfalls greifen Sie in der nächsten Zeile auf den letzteren Block zu. In ähnlicher Weise prüfen Sie hier nach dem ersteren zufriedenen Zustand und geben Sie das Wort zurück “zurück.“Summen”.
- Legen Sie im anderen Fall den Wert selbst als Zeichenfolge über die zugeordneten “an“Wert von()" Methode.
- Schließlich protokollieren Sie das entsprechende Ergebnis bei jeder Iteration.
Ausgang
Bevor Sie mit dem nächsten Ansatz fortfahren, sollten Sie die folgenden Pakete einschließen, um Benutzereingaben zu aktivieren und zu manipulieren. “intWerte jeweils.
Java importieren.Util.Scanner;
Java importieren.Util.Strom.Intstream;
Ansatz 3: Implementierung des „Fizzbuzz“ -Problems in Java mit den Methoden „Maptoobj ()“ und „RangeClesed ())
Der "maptoobj ()"Methode der"IntstreamDie Schnittstelle wird verwendet, um einen von Objekt bewerteten Stream und das “zurückzugebenRangeclosed ()Die Methode gibt einen sequentiell geordneten intstream zurück. Diese Methoden können in Kombination mit dem “angewendet werdenTernärOperator, um das entsprechende Wort anstelle der Ganzzahl innerhalb des Benutzer-Input-Bereichs zurückzugeben.
Syntax
statische intstream Rangeclosed (int zuerst, int zuletzt)
In dieser Syntax:
- “Erste”Bezieht sich auf den Wert einschließlich des ersten Wertes.
- “zuletzt”Zeigt auf den letzten Wert.
Beispiel
Betrachten Sie das folgende Beispiel:
öffentliche Klasse Fizzbuzz3
public static void main (String args [])
Scanner input = neuer Scanner (System.In);
System.aus.print ("die Endgrenze eingeben: \ n");
int intineger = Eingabe.NextInt ();
Intstream.Rangecloses (1, Intierer).Maptoobj (i-> i%3 == 0?(i%5 == 0? "Fizzbuzz": "Fizz") :( i%5 == 0? "Buzz": i+"")).foreach (System.out :: print);
Eingang.schließen();
Führen Sie in den obigen Codezeilen die folgenden Schritte aus:
- Erstellen Sie zunächst eine “Scanner"Objekt über das"neu"Schlüsselwort und das"Scanner()Konstruktor.
- Der "System.InParameter liest die Eingabe.
- Danach verbinden Sie die “NextInt ()Methode, um die Eingabe als Ganzzahl zu erhalten.
- Jetzt verbinden Sie die “Rangeclosed ()Methode mit der “IntstreamSchnittstelle und geben Sie den Bereich an, indem Sie sich auf den Benutzer-Input-Wert beziehen.
- Wenden Sie auch das an “maptoobj ()Methode zusammen mit dem ternären Operator, um einen Objektwertstream zurückzugeben.
- Notiz: Die im ternären Operator durchgeführte Funktionalität ist identisch mit dem vorherigen Ansatz.
- Schließlich wenden Sie die “an“für jede()Methode zum Anzeigen aller Werte und zum Schließen des Scanners über die “schließen()" Methode.
Ausgang
Dieses Ergebnis impliziert, dass das sequentielle “Intstream”Wird in Übereinstimmung mit dem Eingangsbereich zurückgegeben.
Abschluss
Um die zu implementierenFizzbuzz"Problem in Java, wenden Sie das an"ansonsten”Erklärung, die“Ternär"Operator oder der"maptoobj ()" Und "Rangeclosed ()”Methoden. Diese Ansätze wenden eine Überprüfung auf den angegebenen oder Benutzer-Input-Bereich von Ganzzahlen an und geben das entsprechende Wort gemäß dem Spiel zurück, i.e., "Fizzbuzz" -Regeln. Dieser Blog wird geführt, um das Problem „Fizzbuzz“ in Java zu besprechen.