logo

Java の FizzBu​​zz プログラム

フィズバズ は子供たちに人気のゲームです。これを遊ぶことで、子供たちは割り算を学びます。さて、 フィズバズ ゲームは、プログラミングに関するよくある質問になっています。 Javaプログラミング インタビュー。このセクションでは、 Java の FizzBu​​zz プログラム

FizzBu​​zz ゲームのルール

FizzBu​​zz ゲームのルールは非常に簡単です。

  • 言う フィズ 数値が次で割り切れる場合 3
  • 言う バズ 数値が次で割り切れる場合 5
  • 言う フィズバズ 数値が次で割り切れる場合 両方 3と5。
  • を返します 番号 それ自体、番号が 割り切れない 3と5で。

注: 3 と 5 の代わりに、別の約数 (5 と 7 など) や文字列 (Fizz と Buzz) を使用することもできます。

上記のルールを Java プログラムに実装してみましょう。

Java FizzBu​​zz プログラム

Java で FizzBu​​zz プログラムを作成するには 2 つの方法があります。

  • else-if ステートメントの使用
  • Java 8の使用

else-if ステートメントの使用

次のプログラムでは、Fizz または Buzz または FizzBu​​zz を出力する上限である整数 (n) をユーザーから読み取ります。 for ループは 1 から開始され、条件 i になるまで実行されます。<=n 3 5 becomes false. the else-if statement to check number is multiple of and or not.< p>

FizzBu​​zzExample1.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>

このメソッドは 2 つのパラメータを解析します。

個別の SQL カウント
    startInclusive:初期値です。含む:包括的な上限。

mapToObj() メソッドの使用

このメソッドは中間操作を実行し、指定された関数をこのストリームの要素に適用した結果で構成されるオブジェクト値のストリームを返します。

構文:

 Stream mapToObj(IntFunction mapper) 

メソッドはパラメータを解析します マッパー (新しいストリームの要素タイプの)。新しいストリームを返します。

FizzBu​​zzExample2.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(); } } 

出力:

 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 

上記のプログラムでは、FizzBu​​zz のロジックが 1 行に調整されていることに注意してください。 三項演算子 。コード行が減ります。印刷しました フィズ 数値が 3 の倍数の場合、出力します。 バズ 数値が 5 の倍数の場合、出力します。 フィズバズ 数値が 3 と 5 の倍数の場合、そうでない場合は、 番号 自体。