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
for(int i = 1;i < 100;i++){
System.out.println(i);
}
--Declare Integer
1
2
3
(Unterlassung)
97
98
99
Ausgabe bis zu 99
Verketten Sie die Zeichenfolge "is Fizz"
for(int i = 1;i < 100;i++){
System.out.println(i + "Ist Fizz");
}
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".
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
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
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);
}
}
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
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");
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
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);
}
}
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!
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);
}
}
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