[Java] Dinge, die Sie bei der Ausgabe von FizzBuzz beachten sollten

Dinge, auf die Sie bei der Ausgabe von FizzBuzz # achten sollten

Was ist das FizzBuzz-Problem?

Ein Spiel, bei dem der erste Spieler "1" und der nächste Spieler die nächste Nummer des vorherigen Spielers sagt

Jedoch ...

Es gibt eine Regel

Da das FizzBuzz-Problem mit einem relativ einfachen Programm ausgegeben werden kann, Es ist eine Barriere, die unerfahrene Programmierer überwinden sollten

Schreiben Sie eine for-Anweisung, die eine Vorlage sein wird

for(int i = 1;i < 100;i++){
    System.out.println(i);
  }

Was bedeutet das oben genannte?

--Declare Integer

1
2
3
(Unterlassung)
97
98
99

Ausgabe bis zu 99

Ändern Sie den obigen Code

Verketten Sie die Zeichenfolge "is Fizz"

for(int i = 1;i < 100;i++){
 System.out.println(i + "Ist Fizz");
}	

Ergebnis···###

1 ist Fizz
2 ist Fizz
3 ist Fizz
4 ist Fizz
5 ist Fizz
(Unterlassung)
15 ist Fizz
(Unterlassung)
96 ist Fizz
97 ist Fizz
98 ist Fizz
99 ist Fizz

1 und 3 und 15 sind Fizz geworden Dies liegt daran, dass es keine bedingte Verzweigung gibt, wie "wenn es ein Vielfaches von 3 ist", "wenn es ein Vielfaches von 5 ist", "wenn es ein Vielfaches von 3 und 5 ist" und "wenn es nicht ist".

Geben Sie "Fizz" in Vielfachen von 3 ## aus

Fügen Sie "Fizz" hinzu, wenn es ein Vielfaches von 3 ist, andernfalls geben Sie eine Zahl aus

for(int i = 1;i < 100;i++){
 if(i % 3 == 0){
   System.out.println(i + "Ist Fizz");
 }
 else{
   System.out.println(i);
 }
}

"I% 3 == 0" ist Der Rest der Division von i durch 3 ist 0 Das heißt, es ist ein Vielfaches von 3

Ergebnis###

1
2
3 ist Fizz
4
5
6 ist Fizz
7
8
9 ist Fizz
10
(Unterlassung)
15 ist Fizz
16
17
18 ist Fizz
(Unterlassung)
93 ist Fizz
94
95
96 ist Fizz
97
98
99 ist Fizz

Geben Sie "Buzz" in Vielfachen von 3, "Fizz" und 5 ## aus

Fügen Sie "Fizz" hinzu, wenn es ein Vielfaches von 3 ist, "Buzz", wenn es ein Vielfaches von 5 ist, andernfalls geben Sie eine Zahl aus.

for(int i = 1;i < 100;i++){
 if(i % 3 == 0){
   System.out.println(i + "Ist Fizz");
 }
 else if(i % 5 == 0){
   System.out.println(i + "Ist Buzz");
 }
 else{
   System.out.println(i);
 }
}

Ergebnis###

1
2
3 ist Fizz
4
5 ist Buzz
6 ist Fizz
7
8
9 ist Fizz
10 ist Buzz
11
12 ist Fizz
13
14
15 ist Fizz
16

Oh! ??

15 ist Fizz! Dies liegt daran, dass der obere Prozess die Bedingung erfüllt und der untere Prozess übersprungen wird. Aus diesem Grund ist es notwendig, in der Reihenfolge von der "engeren" Bedingung zu schreiben.

 if(i % 3 == 0){
   System.out.println(i + "Ist Fizz");   //Die Bedingung ist hier erfüllt und die unten stehende Verarbeitung wird übersprungen
 }
 else if(i % 5 == 0){
   System.out.println(i + "Ist Buzz");

Ein Vielfaches von 3 und ein Vielfaches von 5

Fügen Sie "Fizz" hinzu, wenn es ein Vielfaches von 3 ist, "Buzz", wenn es ein Vielfaches von 5 ist, andernfalls geben Sie eine Zahl aus. Verbinden Sie bedingte Ausdrücke mit "&&", um Vielfache von 5 gleichzeitig mit Vielfachen von 3 zu erfüllen

i % 3 == 0 && i % 5 == 0

Komplett!

for(int i = 1;i < 100;i++){
    if(i % 3 == 0 && i % 5 == 0){
        System.out.println(i + "Ist Fizz Buzz");
     }
     else if(i % 3 == 0){
        System.out.println(i + "Ist Fizz");
     }
     else if(i % 5 == 0){
        System.out.println(i + "Ist Buzz");
     }
     else{
        System.out.println(i);
     }
}

Ergebnis##

1
2
3 ist Fizz
4
5 ist Buzz
6 ist Fizz
7
8
9 ist Fizz
10 ist Buzz
11
12 ist Fizz
13
14
15 ist Fizz Buzz

Richtig 15 wird als Fizz Buzz ausgegeben Nein!

Apropos,

Wenn Sie aus einer Vielzahl von Bedingungen schreiben ...

 for(int i = 1;i < 100;i++){
        if(i % 3 == 0){
        System.out.println(i + "Ist Fizz");
        }
        else if(i % 5 == 0){
            System.out.println(i + "Ist Buzz");
         }
         else if(i % 3 == 0 && i % 5 == 0){
             System.out.println(i + "Ist Fizz Buzz");
         }
         else{
            System.out.println(i);
        }
    }

Ergebnis##

1
2
3 ist Fizz
4
5 ist Buzz
6 ist Fizz
7
8
9 ist Fizz
10 ist Buzz
11
12 ist Fizz
13
14
15 ist Fizz

Immerhin hat "Fizz" Priorität und es wird seltsam, also sei vorsichtig

Recommended Posts

[Java] Dinge, die Sie bei der Ausgabe von FizzBuzz beachten sollten
Dinge, die Sie beim Schreiben von Java beachten sollten
Dinge, die Sie beim Schreiben von Code in Java beachten sollten
[Java Silver] Hinweise zu switch-Anweisungen
Um auf einfach zu lesenden Code zu achten
[Java] [Microsoft] Beachten Sie Folgendes, wenn Sie den SQL Server-JDBC-Treiber in eine JAR-Datei aufnehmen
5 Dinge, die neue Programmierer beachten sollten
[Java] Kurzschlüsse beachten (Kurzschlussauswertung)
Java Servlet sollte die Multithread-Umgebung kennen
[Anfänger] Punkte, auf die Sie nach Java-Übungen / Vererbung / abstrakte Methode achten sollten [Anmerkung 26]
Fassen Sie den Lebenszyklus von Java-Objekten zusammen, die bei der Android-Entwicklung berücksichtigt werden müssen
Grundregeln zum Schreiben von einfach zu lesendem Code
[Schienen] Beachten Sie bei der Verwendung von Ajax die "CSRF-Maßnahmen".
Stellen Sie sicher, dass Sie das Java compareTo-Ergebnis mit 0 vergleichen
[Technische Hinweise] Dinge, die aus der Sicht eines Ingenieurs beim Erstellen einer Ansicht zu beachten sind
Java soll ab heute dabei sein
Ist es für den Benutzer einfach, Allzweckfunktionen zu implementieren? Seien wir uns dessen bewusst
So ermitteln Sie die Gesamtzahl der Seiten beim Paging in Java
[java] Zusammenfassung des Umgangs mit char
Ausgabe des Buches "Einführung in Java"
Vorsichtsmaßnahmen bei der Migration von VB6.0 auf JAVA
[Java] Wenn Sie das URL-Format mit Bean Validation überprüfen, ist es möglicherweise besser, @URL von Hibernate Validator nicht zu verwenden.
Zusammenfassung der guten Punkte und Vorsichtsmaßnahmen bei der Konvertierung der Java Android-Anwendung in Kotlin
[Förderung des Ruby-Verständnisses (1)] Wenn Sie von Java zu Ruby wechseln, verstehen Sie zuerst den Unterschied.
Zusammenfassung der Punkte, über die ich mir bei der Migration von Java nach Kotlin Sorgen gemacht habe
[Java] [Spring] Eine Aufzeichnung erfolgloser Versuche, Hibernate-Filter beim Instanziieren eines Spring Data Repository zu aktivieren
Verwenden Sie jenv, um mehrere Java-Versionen zu aktivieren
[java] Zusammenfassung des Umgangs mit Zeichenketten
[Java] Anzahl der Verbindungen, die zum Verschachteln von Transaktionen erforderlich sind
[Java] Zusammenfassung, wie Lambda-Ausdrücke weggelassen werden
CORBA scheint in Java SE 11 entfernt zu sein. .. ..
Überprüfung der Auswirkungen auf die Leistung bei Verwendung von Java Volatile
[Java] Achten Sie auf den Schlüsseltyp der Karte
Zusammenfassung des Mooses beim Update von JMockit 1.4 auf 1.30
Es scheint kein anderes zu geben - wenn in Java
Was ich getan habe, als ich Java zu Kotlin konvertiert habe
Dinge, die Sie beachten sollten, wenn Sie sich für CRuby entscheiden
Der [Java] char-Typ kann in den int-Typ umgewandelt werden
Minecraft BE Serverentwicklung von PHP nach Java
[Einführung in Java] Grundlagen der Java-Arithmetik (für Anfänger)
Java Willkommen im Sumpf der zweidimensionalen Arrays
Punkte, die bei Java beachtet werden müssen, sind gleich
So erhalten Sie den Klassennamen des Arguments von LoggerFactory.getLogger, wenn Sie SLF4J in Java verwenden
[Einführung in Java] Liste der Dinge, die am 14. Tag der Programmierung gefangen wurden
Zusammenfassung der Verwendung des im IE festgelegten Proxy-Sets bei der Verbindung mit Java