Dans la programmation Java de base, il peut y avoir des cas où l'on veut améliorer la programmation et les compétences logiques. Plus précisément, permettant aux débutants de créer un algorithme un peu délicat ou de faire de la logique. Également, pour récupérer certaines valeurs filtrées en fonction de l'exigence. Dans de tels cas, le «
Fuzzbuzz»Le problème en Java aide les débutants à améliorer leurs compétences de codage.
Cet article démontrera les règles et la mise en œuvre du problème «FizzBuzz» en Java.
Quel est le problème «Fizzbuzz» à Java?
Le "Fuzzbuzz«Le problème correspond à un jeu dans la vraie vie qui est joué par un groupe de personnes ayant les règles suivantes:
- La séquence de virages est décidé avant le début du jeu.
- Le premier joueur initie en spécifiant un nombre, je.e., "1".
- Le joueur suivant dit le numéro suivant, et ainsi de suite.
- La partie délicate est que le mot «Pétiller"On dit au lieu que le nombre soit multiple de"3".
- De même, le mot «Bourdonner"On dit s'il (numéro) est un multiple de"5".
- Cependant, si le nombre est un multiple des deux nombres "3" et "5", le mot "Fuzzbuzz"Est utilisé à la place.
Note: Les règles pour les nombres spécifiés ci-dessus peuvent changer, je.e., "11" et "13" etc.
Comment mettre en œuvre le problème «FizzBuzz» en Java?
Pour implémenter le «Fuzzbuzz«Problème en Java, appliquez les approches suivantes:
- "sinon" Déclaration.
- "Ternaire»Opérateur.
- "Maptoobj ()" et "Rangeclosed ()«Méthodes.
Les approches suivantes appliqueront un chèque sur les chiffres "3" et "5»Et invoque le mot correspondant.
Approche 1: Mise en œuvre du problème «FizzBuzz» en Java en utilisant la déclaration «if / else»
Le "sinon»La déclaration vérifie une condition particulière et invoque la déclaration correspondante. Cette déclaration peut être appliquée pour appliquer un contrôle sur la survenue des nombres conformément aux règles.
Exemple
Présentation de l'exemple ci-dessous:
classe publique FizzBuzz
public static void main (String args [])
pour (int i = 1; i <= 20; i++)
if (i% 3 == 0 && i% 5 == 0)
Système.dehors.println ("FizzBuzz");
else if (i% 3 == 0)
Système.dehors.println ("fizz");
else if (i% 5 == 0)
Système.dehors.println ("buzz");
autre
Système.dehors.println (i);
Selon le code ci-dessus, appliquez les étapes suivantes:
- Tout d'abord, appliquez un «pour«Boucle pour itérer le long des entiers jusqu'à«20".
- Dans cette plage, vérifiez que les chiffres sont multiples des deux "3" et "5"En vérifiant s'ils sont complètement divisibles et aucun reste n'est laissé pour compte.
- Sur l'état satisfait, enregistrez le mot «Fuzzbuzz»Conformément aux règles.
- De même, à la survenue des nombres étant multiples de «3», Enregistrez le mot«Pétiller".
- De même, affichez le mot "Bourdonner"Si le nombre est un multiple de"5".
- Dans le "autre»Condition, le numéro lui-même sera affiché sur la console.
Sortir
Dans cette sortie, on peut observer que les mots correspondants remplacent les nombres qui sont des multiples de «3","5" ou les deux.
Approche 2: Mise en œuvre du problème «FizzBuzz» en Java à l'aide de «l'opérateur ternaire»
Le "Ternaire»L'opérateur vérifie également une condition particulière et invoque le bloc correspondant en fonction des conditions satisfaites ou insatisfaites. Cet opérateur peut être utilisé combiné avec le «valeur de()”Méthode pour vérifier également la condition de divisibilité et enregistrer le résultat correspondant en tant que chaîne.
Syntaxe
(condition) ? (invoque si vrai): (invoque si faux);
Exemple
Passons à l'exemple suivant pour comprendre le concept déclaré:
classe publique FizzBuzz2
public static void main (String args [])
pour (int i = 1; i <= 20; i++)
Sortie de chaîne = (i% 3 == 0 ? (I% 5 == 0 ? "Fizzbuzz": "Fizz"):
(I% 5 == 0 ? "Buzz": chaîne.valeur de (i)));
Système.dehors.println (sortie);
Selon cet extrait de code, effectuez les étapes suivantes:
- De même, incluez un «pour”Boucle pour itérer le long des entiers jusqu'à la limite spécifiée.
- Dans cette plage, vérifiez la condition de telle sorte que si le nombre est un multiple de «3», Invoquez l'ancienne condition après«?". Si cette condition invoquée (multiple de 5) devient également satisfaite, enregistrez le mot «Fuzzbuzz".
- Dans le cas de la première condition satisfaite, renvoyez le mot «Pétiller".
- Sinon, accédez à ce dernier bloc dans la ligne suivante. Ici, de même, vérifiez la première condition satisfaite et renvoyez le mot «Bourdonner".
- Dans l'autre cas, enregistrez la valeur elle-même en tant que chaîne via le associé "valeur de()" méthode.
- Enfin, enregistrez le résultat correspondant à chaque itération.
Sortir
Avant de passer à l'approche suivante, assurez-vous d'inclure les packages suivants pour activer l'entrée de l'utilisateur et manipuler "int»Valeurs, respectivement.
Importer Java.user.Scanner;
Importer Java.user.flux.Intstream;
Approche 3: Mise en œuvre du problème «FizzBuzz» en Java à l'aide des méthodes «Maptoobj ()» et «Rangeclosed ()
Le "Maptoobj ()«Méthode du«Intstream»L'interface est utilisée pour renvoyer un flux à valeur d'objet et le« «Rangeclosed ()”La méthode renvoie un Intstream ordonné séquentiel. Ces méthodes peuvent être appliquées en combinaison avec le «Ternaire”Opérateur pour retourner le mot correspondant au lieu de l'entier dans la plage d'interrupteur utilisateur.
Syntaxe
Rangeclosé statique en intStream (Int First, int Last)
Dans cette syntaxe:
- "d'abord»Fait référence à la valeur comprenant la première valeur.
- "dernier»Porte la dernière valeur.
Exemple
Considérez l'exemple indiqué ci-dessous:
classe publique FizzBuzz3
public static void main (String args [])
Entrée du scanner = nouveau scanner (système.dans);
Système.dehors.print ("Entrer la limite finale: \ n");
int ininteger = entrée.NextInt ();
Intstream.Rangeclosé (1, ininteger).Maptoobj (i-> i% 3 == 0?(I% 5 == 0? "Fizzbuzz": "Fizz") :( I% 5 == 0? "Buzz": i + "")).foreach (système.Out :: imprimer);
saisir.fermer();
Dans les lignes de code ci-dessus, effectuez les étapes suivantes:
- Tout d'abord, créez un «Scanner"Objet via le"nouveau»Mot-clé et«Scanner()”Constructeur, respectivement.
- Le "Système.dans»Le paramètre lit l'entrée.
- Après cela, associez le «NextInt ()”Méthode pour obtenir la contribution en tant qu'entier.
- Maintenant, associez le «Rangeclosed ()«Méthode avec le«Intstream”Interface et spécifiez la plage en se référant à la valeur d'entrée de l'utilisateur.
- Appliquez également le «Maptoobj ()”Méthode avec l'opérateur ternaire pour renvoyer un flux de valeur d'objet.
- Note: La fonctionnalité effectuée dans l'opérateur ternaire est identique à l'approche précédente.
- Enfin, appliquez le «pour chaque()«Méthode pour afficher toutes les valeurs et fermer le scanner via le«fermer()" méthode.
Sortir
Ce résultat implique que le séquentiel «Intstream”Est retourné conformément à la plage d'entrée.
Conclusion
Pour implémenter le «Fuzzbuzz«Problème en Java, appliquez le«sinon»Déclaration, le«Ternaire«Opérateur, ou le«Maptoobj ()" et "Rangeclosed ()«Méthodes. Ces approches appliquent une vérification sur la gamme d'entiers spécifiée ou intermédiaire et renvoient le mot correspondant conformément au jeu, je.e., Règles "Fizzbuzz". Ce blog est guidé pour discuter du problème «Fizzbuzz» à Java.