logo

FizzBuzz-program i Java

FizzBuzz är ett spel som är populärt bland barn. Genom att spela detta lär sig barnen divisionen. Nu den FizzBuzz spel har blivit en populär programmeringsfråga som ofta ställs i Java programmering intervjuer. I det här avsnittet kommer vi att lära oss hur man skapar en FizzBuzz-program i Java .

Regler för FizzBuzz-spelet

Reglerna för FizzBuzz-spelet är väldigt enkla.

  • Säga Fräsa om talet är delbart med 3 .
  • Säga Surr om talet är delbart med 5 .
  • Säga FizzBuzz om talet är delbart med både 3 och 5.
  • Returnera siffra själv, om numret är inte delbart med 3 och 5.

Notera: Istället för 3 och 5 kan du också använda olika divisorer (som 5 och 7, etc.) och sträng (Fizz och Buzz).

Låt oss implementera ovanstående regler i ett Java-program.

Java FizzBuzz-program

Det finns två sätt att skapa FizzBuzz-program i Java:

systemmjukvara
  • Använder else-if Statement
  • Använder Java 8

Använder else-if-satsen

I följande program läser vi ett heltal (n) från användaren som är den övre gränsen för att skriva ut Fizz eller Buzz eller FizzBuzz. For-slingan börjar från 1 och körs tills villkoret 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(&apos;Enter the number: &apos;); //reads an integer from the user int n = sc.nextInt(); System.out.println(&apos;The Fizz, Buzz, and FizzBuzz numbers are: &apos;); //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(&apos;Enter the number:&apos;); //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-&gt;i%3==0?(i%5==0? &apos;FizzBuzz &apos;:&apos;Fizz &apos;):(i%5==0? &apos;Buzz &apos;: i+&apos; &apos;)).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>

Metoden analyserar två parametrar:

    startInklusive:Det är startvärdet.Inklusive:Den inklusive övre gränsen.

Använder metoden mapToObj()

Metoden utför en mellanoperation och returnerar en objektvärderad ström som består av resultaten av att tillämpa den givna funktionen på elementen i denna ström.

Syntax:

 Stream mapToObj(IntFunction mapper) 

Metoden analyserar en parameter kartläggare (av elementtyp av ny ström). Den returnerar den nya strömmen.

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(&apos;Enter the number:&apos;); //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-&gt;i%3==0?(i%5==0? &apos;FizzBuzz &apos;:&apos;Fizz &apos;):(i%5==0? &apos;Buzz &apos;: i+&apos; &apos;)).forEach(System.out::print); //close the Scanner sc.close(); } } 

Produktion:

skådespelare ranbir kapoor ålder
 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 

Observera att i programmet ovan justeras logiken för FizzBuzz till en rad med hjälp av ternär operatör . Det minskar kodraden. Vi har tryckt Fräsa om talet är multipel av 3, skrivs ut Surr om talet är multipel av 5, skrivs ut FizzBuzz om talet är multipel av 3 och 5, skrivs annars ut siffra sig.