Qual é o problema do fezzbuzz em java

Qual é o problema do fezzbuzz em java
Na programação básica de Java, pode haver casos em que se deseja melhorar as habilidades de programação e lógicas. Mais especificamente, permitindo que os novatos criem um algoritmo um tanto complicado ou façam lógica. Além disso, para recuperar alguns valores filtrados com base no requisito. Nesses casos, o “Fizzbuzz”Problema em Java auxilia iniciantes a melhorar suas habilidades de codificação.

Este artigo demonstrará as regras e a implementação do problema "Fizzbuzz" em Java.

Qual é o problema "Fizzbuzz" em java?

O "Fizzbuzz”O problema corresponde a um jogo na vida real que é jogado por um grupo de pessoas com as seguintes regras:

  • A sequência de turnos é decidida antes do início do jogo.
  • O primeiro jogador inicia especificando qualquer número, eu.e., ““1”.
  • O próximo jogador diz o próximo número e assim por diante.
  • A parte complicada é que a palavra “Efervescer”É dito em vez de o número ser múltiplo de“3”.
  • Da mesma forma, a palavra “Zumbido”É dito se (número) é um múltiplo de“5”.
  • No entanto, se o número for um múltiplo dos dois números “3" e "5", a palavra "Fizzbuzz”É usado em vez disso.

Observação: As regras para os números especificados acima podem mudar, i i.e., ““11" e "13”Etc.

Como implementar o problema "Fizzbuzz" em Java?

Para implementar o “FizzbuzzProblema em Java, aplique as seguintes abordagens:

  • ““se/else" Declaração.
  • ““TernárioOperador.
  • ““Maptoobj ()" e "rangeClosed ()" Métodos.

As abordagens a seguir aplicarão um cheque sobre os números “3" e "5”E invocar a palavra correspondente.

Abordagem 1: Implementando o problema "Fizzbuzz" em Java usando a instrução "if/else"

O "se/else”A declaração verifica uma condição específica e chama a declaração correspondente. Esta declaração pode ser aplicada para aplicar uma verificação sobre a ocorrência dos números de acordo com as regras.

Exemplo

Vamos ver o exemplo abaixo fornecido:

classe pública Fizzbuzz
public static void main (string args [])
para (int i = 1; i <= 20; i++)
if (i % 3 == 0 && i % 5 == 0)
Sistema.fora.println ("fizzbuzz");

caso contrário, se (i % 3 == 0)
Sistema.fora.println ("Fizz");

caso contrário, if (i % 5 == 0)
Sistema.fora.println ("Buzz");

outro
Sistema.fora.println (i);

De acordo com o código acima, aplique as seguintes etapas:

  • Em primeiro lugar, aplique um “para”Faça um loop para iterar ao longo dos números inteiros até“20”.
  • Dentro desse intervalo, verifique se os números são múltiplos de ambos “3" e "5”Ao verificar se eles são completamente divisíveis e nenhum restante é deixado para trás.
  • Sobre a condição satisfeita, registre a palavra “Fizzbuzz”De acordo com as regras.
  • Da mesma forma, após a ocorrência dos números múltiplos de “3", Registre a palavra"Efervescer”.
  • Da mesma forma, exiba a palavra “Zumbido"Se o número for um múltiplo de"5”.
  • No "outroCondição, o número em si será exibido no console.

Saída

Nesta saída, pode -se observar que as palavras correspondentes substituem os números que são múltiplos de “3","5" ou ambos.

Abordagem 2: Implementando o problema "Fizzbuzz" em Java usando o "operador ternário"

O "Ternário”O operador também verifica uma condição específica e chama o bloco correspondente com base nas condições satisfeitas ou insatisfeitas. Este operador pode ser utilizado combinado com o “valor de()”Método para também verificar a condição de divisibilidade e registrar o resultado correspondente como uma string.

Sintaxe

(doença) ? (Invoque se verdadeiro): (Invoque se false);

Exemplo

Vamos passar pelo exemplo a seguir para entender o conceito declarado:

classe pública FizzBuzz2
public static void main (string args [])
para (int i = 1; i <= 20; i++)
String Output = (i % 3 == 0 ? (i % 5 == 0 ? "Fizzbuzz": "Fizz"):
(i % 5 == 0 ? "Buzz": string.valorof (i)));
Sistema.fora.println (saída);

De acordo com este snippet de código, execute as seguintes etapas:

  • Da mesma forma, inclua um “para”Faça um loop para iterar ao longo dos números inteiros até o limite especificado.
  • Dentro desse intervalo, verifique a condição de modo que, se o número for um múltiplo de “3", Invoque a condição anterior depois de"?”. Se essa condição invocada (múltiplo de 5) também ficar satisfeita, registre a palavra “Fizzbuzz”.
  • No caso apenas da condição satisfeita anterior, devolva a palavra “Efervescer”.
  • Caso contrário, acesse o último bloco na próxima linha. Aqui, da mesma forma, verifique a condição satisfeita anterior e devolva a palavra “Zumbido”.
  • No outro caso, registre o valor em si como uma string através do associado “valor de()”Método.
  • Finalmente, registre o resultado correspondente em cada iteração.

Saída

Antes de prosseguir para a próxima abordagem, inclua os pacotes a seguir para permitir a entrada do usuário e manipular “int”Valores, respectivamente.

importar java.util.Scanner;
importar java.util.fluxo.Intstream;

Abordagem 3: Implementando o problema "Fizzbuzz" em Java usando os métodos "Maptoobj ()" e "RangeClosed ()

O "Maptoobj ()”Método do“Intstream”A interface é utilizada para retornar um fluxo com valor de objeto e o“rangeClosed ()”Método retorna um Intstream ordenado sequencial. Esses métodos podem ser aplicados em combinação com o “Ternário”Operador para retornar a palavra correspondente em vez do número inteiro dentro do intervalo de entrada do usuário.

Sintaxe

estático intstream rangeClosed (int primeiro, int last)

Nesta sintaxe:

  • ““primeiro”Refere -se ao valor, incluindo o primeiro valor.
  • ““durar”Aponta para o último valor.

Exemplo

Considere o exemplo abaixo do ponto:

classe pública FizzBuzz3
public static void main (string args [])
Scanner Input = New Scanner (sistema.em);
Sistema.fora.print ("Entre o limite final: \ n");
int ininteger = entrada.nextInt ();
Intstream.rangeClosed (1, ininteger).Maptoobj (i-> I%3 == 0?(i%5 == 0? "Fizzbuzz": "Fizz") :( i%5 == 0? "Buzz": I+"")).foreach (sistema.out :: print);
entrada.fechar();

Nas linhas de código acima, execute as seguintes etapas:

  • Em primeiro lugar, crie um “Scanner“Objeto através do“novo"Palavra -chave e a"Scanner ()”Construtor, respectivamente.
  • O "Sistema.em”O parâmetro lê a entrada.
  • Depois disso, associe o “NextInt ()”Método para obter a entrada como um número inteiro.
  • Agora, associe o “rangeClosed ()”Método com o“Intstream”Interface e especifique o intervalo, referindo-se ao valor da entrada do usuário.
  • Além disso, aplique o “Maptoobj ()”Método junto com o operador ternário para retornar um fluxo de valor de objeto.
  • Observação: A funcionalidade realizada no operador ternário é idêntica à abordagem anterior.
  • Por fim, aplique o “para cada()”Método para exibir todos os valores e fechar o scanner através do“fechar()”Método.

Saída

Este resultado implica que o seqüencial “Intstream”É retornado de acordo com o intervalo de entrada.

Conclusão

Para implementar o “Fizzbuzz”Problema em Java, aplique o“se/elseDeclaração, a “TernárioOperador, ou o “Maptoobj ()" e "rangeClosed ()" métodos. Essas abordagens aplicam uma verificação sobre o intervalo especificado ou de entrada do usuário de números inteiros e retornam a palavra correspondente de acordo com o jogo, i i.e., Regras "Fizzbuzz". Este blog é orientado a discutir o problema "Fizzbuzz" em Java.