ФиззБузз је игра која је популарна међу децом. Играјући ово, деца уче поделу. Сада ФиззБузз игра је постала популарно програмско питање које се често поставља Јава програмирање интервјуи. У овом одељку ћемо научити како да креирамо а Програм ФиззБузз у Јави .
Правила игре ФиззБузз
Правила игре ФиззБузз су врло једноставна.
- Реци Физз ако је број дељив са 3 .
- Реци Бузз ако је број дељив са 5 .
- Реци ФиззБузз ако је број дељив са и једно и друго 3 и 5.
- Вратите број сама, ако је број није дељив са 3 и 5.
Напомена: Уместо 3 и 5, можете користити различите делиоце (попут 5 и 7, итд.) и низове (Физз и Бузз).
Хајде да применимо горња правила у Јава програм.
Јава ФиззБузз програм
Постоје два начина за креирање програма ФиззБузз у Јави:
- Коришћење наредбе елсе-иф
- Коришћење Јава 8
Коришћење наредбе елсе-иф
У следећем програму читамо цео број (н) од корисника који је горња граница за штампање Физз или Бузз или ФиззБузз. Петља фор почиње од 1 и извршава се до услова и<=n 3 5 becomes false. the else-if statement to check number is multiple of and or not.< p>
ФиззБуззЕкампле1.јава
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>
Метод анализира два параметра:
Коришћење метода мапТоОбј().
Метода изводи међуоперацију и враћа Стреам са објектном вредношћу који се састоји од резултата примене дате функције на елементе овог тока.
Синтакса:
Stream mapToObj(IntFunction mapper)
Метод анализира параметар мапер (типа елемента новог тока). Враћа нови ток.
ФиззБуззЕкампле2.јава
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(); } }
Излаз:
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
Имајте на уму да је у горњем програму логика за ФиззБузз подешена у једну линију помоћу тернарни оператор . Смањује ред кода. Штампали смо Физз ако је број вишеструки од 3, штампа Бузз ако је број вишеструки од 5, штампа ФиззБузз ако је број вишеструки од 3 и 5, иначе штампа број себе.
=n>=n>