[Java] Éléments à prendre en compte lors de la sortie de FizzBuzz

Points à surveiller lors de la sortie de FizzBuzz

Quel est le problème FizzBuzz?

Un jeu où le premier joueur dit "1" et le joueur suivant dit le numéro suivant du joueur précédent

Cependant ...

--S'il est divisible par 3, "Fizz" —— "Buzz" si divisible par 5

Il y a une règle

Puisque le problème FizzBuzz peut être généré avec un programme relativement simple, C'est un obstacle que les programmeurs novices devraient surmonter

Écrivez une instruction for qui servira de modèle

for(int i = 1;i < 100;i++){
    System.out.println(i);
  }

Que signifie ce qui précède?

--Déclarer un entier --Initialiser avec l'indice "i" comme 1. --Incrément (augmentation) i à 99 (non compris 100), --Sortez l'indice incrémenté i avec un saut de ligne

1
2
3
(Omission)
97
98
99

Sortie jusqu'à 99

Modifiez le code ci-dessus

Concaténer la chaîne "is Fizz"

for(int i = 1;i < 100;i++){
 System.out.println(i + "Est Fizz");
}	

résultat···###

1 est Fizz
2 est Fizz
3 est Fizz
4 est Fizz
5 est Fizz
(Omission)
15 est Fizz
(Omission)
96 est Fizz
97 est Fizz
98 est Fizz
99 est Fizz

1, 3 et 15 sont devenus Fizz Ceci est dû au fait qu'il n'y a pas de branchement conditionnel tel que "s'il s'agit d'un multiple de 3", "s'il s'agit d'un multiple de 5", "s'il s'agit d'un multiple de 3 et 5" et "s'il ne l'est pas".

Sortie "Fizz" en multiples de 3

Ajouter "Fizz" s'il s'agit d'un multiple de 3, sinon afficher un nombre

for(int i = 1;i < 100;i++){
 if(i % 3 == 0){
   System.out.println(i + "Est Fizz");
 }
 else{
   System.out.println(i);
 }
}

"I% 3 == 0" est Le reste de la division de i par 3 est égal à 0 Cela signifie que c'est un multiple de 3

résultat###

1
2
3 est Fizz
4
5
6 est Fizz
7
8
9 est Fizz
10
(Omission)
15 est Fizz
16
17
18 est Fizz
(Omission)
93 est Fizz
94
95
96 est Fizz
97
98
99 est Fizz

Sortie "Buzz" en multiples de 3, "Fizz" et 5

Ajoutez "Fizz" si c'est un multiple de 3, "Buzz" s'il est un multiple de 5, sinon sortez un nombre.

for(int i = 1;i < 100;i++){
 if(i % 3 == 0){
   System.out.println(i + "Est Fizz");
 }
 else if(i % 5 == 0){
   System.out.println(i + "Est Buzz");
 }
 else{
   System.out.println(i);
 }
}

résultat###

1
2
3 est Fizz
4
5 est Buzz
6 est Fizz
7
8
9 est Fizz
10 est Buzz
11
12 est Fizz
13
14
15 est Fizz
16

Oh! ??

15 est Fizz! En effet, le processus supérieur satisfait la condition et le processus inférieur est ignoré. Pour cette raison, il est nécessaire d'écrire dans l'ordre à partir de la condition "plus étroite".

 if(i % 3 == 0){
   System.out.println(i + "Est Fizz");   //La condition est remplie ici et le traitement ci-dessous est ignoré
 }
 else if(i % 5 == 0){
   System.out.println(i + "Est Buzz");

Un multiple de 3 et un multiple de 5

Ajoutez "Fizz" si c'est un multiple de 3, "Buzz" s'il est un multiple de 5, sinon sortez un nombre. Reliez les expressions conditionnelles avec "&&" pour satisfaire des multiples de 5 en même temps que des multiples de 3

i % 3 == 0 && i % 5 == 0

Achevée!

for(int i = 1;i < 100;i++){
    if(i % 3 == 0 && i % 5 == 0){
        System.out.println(i + "Est-ce que Fizz Buzz");
     }
     else if(i % 3 == 0){
        System.out.println(i + "Est Fizz");
     }
     else if(i % 5 == 0){
        System.out.println(i + "Est Buzz");
     }
     else{
        System.out.println(i);
     }
}

résultat##

1
2
3 est Fizz
4
5 est Buzz
6 est Fizz
7
8
9 est Fizz
10 est Buzz
11
12 est Fizz
13
14
15 est Fizz Buzz

Correctement 15 est émis comme Fizz Buzz Non!

Au fait,

Si vous écrivez à partir d'un large éventail de conditions ...

 for(int i = 1;i < 100;i++){
        if(i % 3 == 0){
        System.out.println(i + "Est Fizz");
        }
        else if(i % 5 == 0){
            System.out.println(i + "Est Buzz");
         }
         else if(i % 3 == 0 && i % 5 == 0){
             System.out.println(i + "Est-ce que Fizz Buzz");
         }
         else{
            System.out.println(i);
        }
    }

résultat##

1
2
3 est Fizz
4
5 est Buzz
6 est Fizz
7
8
9 est Fizz
10 est Buzz
11
12 est Fizz
13
14
15 est Fizz

Après tout, "Fizz" est prioritaire et ce sera étrange, alors soyez prudent

Recommended Posts

[Java] Éléments à prendre en compte lors de la sortie de FizzBuzz
Points à prendre en compte lors de l'écriture de Java
Éléments à prendre en compte lors de l'écriture de code en Java
[Java Silver] Ce qu'il faut savoir concernant les instructions switch
Être conscient du code facile à lire
[Java] [Microsoft] Éléments à prendre en compte lors de l'inclusion du pilote JDBC SQL Server dans un fichier jar
5 choses dont les nouveaux programmeurs devraient être conscients
[Java] Attention aux courts-circuits (évaluation des courts-circuits)
Le servlet Java doit être conscient de l'environnement multithread
[Débutant] Points à surveiller après les exercices Java / Héritage / Méthode abstraite [Note 26]
Résumer le cycle de vie des objets Java à prendre en compte dans le développement Android
Règles de base à connaître pour écrire du code facile à lire
[Rails] Lorsque vous utilisez ajax, faites attention aux "mesures CSRF".
Assurez-vous de comparer le résultat Java compareTo avec 0
[Notes techniques] Éléments à prendre en compte du point de vue d'un ingénieur lors de la création d'une vue
Java sera impliqué dès aujourd'hui
Est-il facile à utiliser pour l'utilisateur lors de la mise en œuvre de fonctions à usage général? Soyons conscients de
Comment trouver le nombre total de pages lors de la pagination en Java
[java] Résumé de la gestion des caractères
Sortie du livre "Introduction à Java"
Précautions lors de la migration de VB6.0 vers JAVA
[Java] Lors de la vérification du format URL avec Bean Validation, il peut être préférable de ne pas utiliser @URL de Hibernate Validator.
Résumé des bons points et des précautions lors de la conversion de l'application Java Android vers Kotlin
[Promotion de la compréhension de Ruby (1)] Lorsque vous passez de Java à Ruby, commencez par comprendre la différence.
Résumé des points qui m'inquiétaient lors de la migration de Java vers Kotlin
[Java] [Spring] Enregistrement de l'échec de l'activation du filtre Hibernate lors de l'instanciation du référentiel de données Spring
Utilisez jenv pour activer plusieurs versions de Java
[java] Résumé de la gestion des chaînes de caractères
[Java] Nombre de connexions requises lors de l'imbrication des transactions
[Java] Résumé de la façon d'omettre les expressions lambda
CORBA semble avoir été supprimé dans Java SE 11. .. ..
Vérification de l'impact sur les performances lors de l'utilisation de Java volatile
[Java] Faites attention au type de clé de la carte
Résumé de la mousse lors de la mise à jour de JMockit 1.4 vers 1.30
Il ne semble pas y avoir d'autre-si en java
Ce que j'ai fait lorsque j'ai converti Java en Kotlin
Points à garder à l'esprit lorsque vous vous engagez dans CRuby
[Java] le type char peut être converti en type int
Développement de serveur Minecraft BE de PHP à Java
[Introduction à Java] Bases de l'arithmétique Java (pour les débutants)
Java Bienvenue dans le marais des tableaux bidimensionnels
Points à connaître avec Java Equals
Comment obtenir le nom de classe de l'argument de LoggerFactory.getLogger lors de l'utilisation de SLF4J en Java
[Introduction à Java] Liste des choses qui ont été capturées par le 14e jour de programmation
Résumé de l'utilisation du jeu de proxy dans IE lors de la connexion avec Java