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.