FizzBuzz este un joc popular printre copii. Jucând asta, copiii învață divizia. Acum FizzBuzz jocul a devenit o întrebare populară de programare care este pusă frecvent în Programare Java interviuri. În această secțiune, vom învăța cum să creăm un Programul FizzBuzz în Java .
Regulile jocului FizzBuzz
Regulile jocului FizzBuzz sunt foarte simple.
- Spune Fizz dacă numărul este divizibil cu 3 .
- Spune Buzz dacă numărul este divizibil cu 5 .
- Spune FizzBuzz dacă numărul este divizibil cu ambii 3 și 5.
- Returnează număr în sine, dacă numărul este nedivizibil prin 3 și 5.
Notă: În loc de 3 și 5, puteți utiliza divizori diferiți (cum ar fi 5 și 7 etc.) și șir (Fizz și Buzz).
Să implementăm regulile de mai sus într-un program Java.
înlocuiți șirul în java
Programul Java FizzBuzz
Există două moduri de a crea programul FizzBuzz în Java:
- Folosind instrucțiunea else-if
- Folosind Java 8
Folosind declarația else-if
În programul următor, citim un număr întreg (n) de la utilizator care este limita superioară pentru a imprima Fizz sau Buzz sau FizzBuzz. Bucla for începe de la 1 și se execută până la condiția i<=n 3 5 becomes false. the else-if statement to check number is multiple of and or not.< p>
FizzBuzzExample1.java
import java.util.Scanner; public class FizzBuzzExample1 { public static void main(String args[]) { //constructor of the scanner class Scanner sc = new Scanner(System.in); System.out.print('Enter the number: '); //reads an integer from the user int n = sc.nextInt(); System.out.println('The Fizz, Buzz, and FizzBuzz numbers are: '); //for loop executes until the condition i<=n 3 5 becomes false for (int i="1;" <="n;" i++) { returns true if both the conditions return (i%3="=0" && i%5="=0)" prints number is multiple of and system.out.print('fizzbuzz'); } executes condition else system.out.print('fizz'); (i%5="=0)" system.out.print('buzz'); itself not divisible by system.out.print(i); space system.out.print(','+' '); close scanner sc.close(); pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/java-tutorial/88/fizzbuzz-program-java.webp" alt="FizzBuzz Program in Java"> <h3>Using Java 8</h3> <p>Java 8 provides the <strong>IntStream</strong> interface. We have used the following two methods of the IntStream interface.</p> <p> <strong>rangeClosed() Method:</strong> It is the static method of the IntStream interface. It returns a sequential IntStream for the specified range.</p> <p> <strong>Syntax:</strong> </p> <pre> static IntStream rangeClosed(int startInclusive, int endInclusive) </pre> <p>The method parses two parameters:</p> <ul> <tr><td>startInclusive:</td> It is the initial value. </tr><tr><td>endInclusive:</td> The inclusive upper bound. </tr></ul> <h3>Using mapToObj() Method</h3> <p>The method performs an intermediate operation and returns an object-valued Stream consisting of the results of applying the given function to the elements of this stream.</p> <p> <strong>Syntax:</strong> </p> <pre> Stream mapToObj(IntFunction mapper) </pre> <p>The method parses a parameter <strong>mapper</strong> (of element type of new stream). It returns the new stream.</p> <p> <strong>FizzBuzzExample2.java</strong> </p> <pre> import java.util.*; import java.util.stream.IntStream; public class FizzBuzzExample2 { public static void main(String args[]) { Scanner sc = new Scanner(System.in); System.out.print('Enter the number:'); //reads an integer from the user int num = sc.nextInt(); //the rangeClosed() method returns a sequential IntStream for the specified range of int elements //for-each iterate over the Stream and prints the elements IntStream.rangeClosed(1, num).mapToObj(i->i%3==0?(i%5==0? 'FizzBuzz ':'Fizz '):(i%5==0? 'Buzz ': i+' ')).forEach(System.out::print); //close the Scanner sc.close(); } } </pre> <p> <strong>Output:</strong> </p> <pre> Enter the number: 40 1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz Fizz 22 23 Fizz Buzz 26 Fizz 28 29 FizzBuzz 31 32 Fizz 34 Buzz Fizz 37 38 Fizz Buzz </pre> <p>Note that, in the above program the logic for FizzBuzz is adjusted into one line by using the <a href="/ternary-operator-java">ternary operator</a> . It reduces the line of code. We have printed <strong>Fizz</strong> if the number is multiple of 3, prints <strong>Buzz</strong> if the number is multiple of 5, prints <strong>FizzBuzz</strong> if the number is multiple of 3 and 5, else prints the <strong>number</strong> itself.</p> <hr></=n>
Metoda analizează doi parametri:
șir în matrice java
Folosind metoda mapToObj().
Metoda efectuează o operație intermediară și returnează un Stream cu valoare obiect constând din rezultatele aplicării funcției date la elementele acestui flux.
Sintaxă:
Stream mapToObj(IntFunction mapper)
Metoda parsează un parametru cartograf (de tipul de element al fluxului nou). Acesta returnează noul flux.
FizzBuzzExample2.java
import java.util.*; import java.util.stream.IntStream; public class FizzBuzzExample2 { public static void main(String args[]) { Scanner sc = new Scanner(System.in); System.out.print('Enter the number:'); //reads an integer from the user int num = sc.nextInt(); //the rangeClosed() method returns a sequential IntStream for the specified range of int elements //for-each iterate over the Stream and prints the elements IntStream.rangeClosed(1, num).mapToObj(i->i%3==0?(i%5==0? 'FizzBuzz ':'Fizz '):(i%5==0? 'Buzz ': i+' ')).forEach(System.out::print); //close the Scanner sc.close(); } }
Ieșire:
Enter the number: 40 1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz Fizz 22 23 Fizz Buzz 26 Fizz 28 29 FizzBuzz 31 32 Fizz 34 Buzz Fizz 37 38 Fizz Buzz
Rețineți că, în programul de mai sus, logica pentru FizzBuzz este ajustată într-o singură linie prin utilizarea operator ternar . Reduce linia de cod. Noi am tipărit Fizz dacă numărul este multiplu de 3, se imprimă Buzz dacă numărul este multiplu de 5, se imprimă FizzBuzz dacă numărul este multiplu de 3 și 5, altfel tipărește număr în sine.
java generează un număr aleator
=n>=n>