IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Un programme affichant n fois bonjour le chiffre donné par user


Sujet :

avec Java

  1. #1
    Nouveau membre du Club

    Inscrit en
    Octobre 2012
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 94
    Points : 29
    Points
    29
    Billets dans le blog
    1
    Par défaut Un programme affichant n fois bonjour le chiffre donné par user
    Bonjour,

    Comme le dit le titre du topic, créer un programme affichant n fois "bonjour" le nombre de fois correspondant au chiffre donné par user.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    import java.util.Scanner;
     
    public class ExerciceOnzeDeux {
        public static void main(String[] args) {
            // 11.2 Exercice 2 : 
            // réaliser un programme qui affiche plusieurs fois "Bonjour" : le nombre d'affichage
           //  doit être saisi par l'utilisateur.
           // A TROUVER ???
     
           int nb = 0; 
     
           Scanner Sc = new Scanner(System.in);
           System.out.print("Saisir un entier : ");
           nb = Sc.nextInt();
     
            while(nb != 0){
                System.out.println("Bonjour !!!");
            }
     
        }    
    }

    Cela donne un boucle infinie. Merci

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hello,

    eh bien, cette boucle dit de continuer à boucler tant que nb a une valeur différente de zéro.

    Qu'est-ce que tu pourrais faire pour que la valeur de nb finisse par devenir zéro ? (Sachant qu'il faut que ça se fasse après avoir écrit "Bonjour" le bon nombre de fois)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Nouveau membre du Club

    Inscrit en
    Octobre 2012
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 94
    Points : 29
    Points
    29
    Billets dans le blog
    1
    Par défaut
    Mettre nb à 0 après la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while(nb != 0){
                System.out.println("Bonjour !!!");
                nb = 0;
            }
    Mais je crois que ce n'est pas la bonne réponse, parce que le code ne fonctionne pas correctement

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Ouaip.

    Il semble bien que changer la valeur de nb soit la bonne chose à faire.

    Par contre, la changer pour qu'elle devienne zéro et c'est tout, ça ne va pas. Un autre changement que celui-là, peut-être ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Nouveau membre du Club

    Inscrit en
    Octobre 2012
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 94
    Points : 29
    Points
    29
    Billets dans le blog
    1
    Par défaut
    J'ai fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    int nb = 1; 
     
           Scanner Sc = new Scanner(System.in);
           System.out.print("Saisir un entier : ");
           nb = Sc.nextInt();
     
            while(nb > 0){
                System.out.println("Bonjour !!!");
                nb = 0;
            }

    Mais pas de résultat exacte !

  6. #6
    Membre éprouvé Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Points : 1 014
    Points
    1 014
    Par défaut

    Essaye d' "executer" ton code à la main sur une feuille (par exemple avec l'utilisateur qui saisit 2)
    Tu verras tout de suite ce qui ne va pas.
    "On sera toujours mieux installé assis en 1ère que debout en 2nde", un illustre inconnu


    Avant de poser une question vérifiez si elle n'a pas déjà une réponse dans les cours et tutoriels
    Si votre problème est pensez à marquer la conversation comme telle
    Si un message est utile, pertinent, et/ou vous êtes d'accord avec, pensez à à l'inverse s'il est inutile, faux ou que vous n'êtes pas d'accord, pensez à

  7. #7
    Nouveau membre du Club

    Inscrit en
    Octobre 2012
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 94
    Points : 29
    Points
    29
    Billets dans le blog
    1
    Par défaut
    Bonjour, s'affiche une fois quand l'utilisateur tape : 2, 3, etc
    Mais je ne trouves toujours pas la solution. Malgré des changements de valeurs pour nb .

  8. #8
    Membre éprouvé Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Points : 1 014
    Points
    1 014
    Par défaut
    Exécuter à la main, c'est ne pas lancer ton programme, mais prendre le temps de réfléchir instruction par instruction qu'est-ce qui se passe, quelle est la valeur de tel élément, quelle sera la prochaine instruction exécutée, etc.

    Dans ton cas, on s'interesse à la boucle. Faison un éssai avec n=2 au début.

    Première instruction : while(nb > 0){ :
    Ici nb vaut 2 et 2 est plus grand que 0. La condition nb>0 est donc vraie. On va donc rentrer dans la boucle et exécuter la ligne System.out.println("Bonjour !!!");.

    deuxième instruction : System.out.println("Bonjour !!!"); :
    On affiche "Bonjour". A ce stade on a donc affiché 1 fois. On va ensuite exécuter la ligne nb = 0;.

    Troisième instruction : nb = 0; :
    On change la valeur de nb. Avant il valait 2 maintenant il vaut 0. Puis on atteint la fin du tour de la boucle. On va donc re-vérifier la condition. La prochaine ligne exécutée est donc : while(nb > 0){.

    Quatrième instruction : while(nb > 0){ :
    Ici nb vaut 0 et 0 n'est pas plus grand que 0. La condition nb>0 est donc fausse. On sort donc de la boucle. Il n'y a pas de ligne après la boucle. On arrète donc le programme.

    Au final, on aura donc affiché "Bonjour" 1 fois.
    (Et pas 2, alors que c'était la valeur demandée au début)

    Voilà ce qu'il faut que tu fasse pour comprendre comment fonctionne un code simple. Ce n'est qu'en passant par cet étape que tu vas t'améliorer et comprendre^ce que tu code.
    "On sera toujours mieux installé assis en 1ère que debout en 2nde", un illustre inconnu


    Avant de poser une question vérifiez si elle n'a pas déjà une réponse dans les cours et tutoriels
    Si votre problème est pensez à marquer la conversation comme telle
    Si un message est utile, pertinent, et/ou vous êtes d'accord avec, pensez à à l'inverse s'il est inutile, faux ou que vous n'êtes pas d'accord, pensez à

  9. #9
    Nouveau membre du Club

    Inscrit en
    Octobre 2012
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 94
    Points : 29
    Points
    29
    Billets dans le blog
    1
    Par défaut
    La réponse était juste, mettre --nb à la suite de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println("Bonjour !!!");
    CODE FINAL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    import java.util.Scanner;
     
    public class ExerciceOnzeDeux {
        public static void main(String[] args) {
            // 11.2 Exercice 2 : 
            // réaliser un programme qui affiche plusieurs fois "Bonjour" : le nombre d'affichage
           //  doit être saisi par l'utilisateur.
           // A TROUVER ???
     
           int nb = 0; 
     
           Scanner Sc = new Scanner(System.in);
           System.out.print("Saisir un entier : ");
           nb = Sc.nextInt();
     
            while(nb != 0){
                System.out.println("Bonjour !!!");
                --nb;
            }
     
     
        }    
    }
    C'est bien d'écrire et chercher la logique, mais je pense que c'est mieux de tester son code à chaque fois ! Au moins le résultat, nous situe au fur et à mesure qu'on avance . Merci quand même d'essayer d'aider!

  10. #10
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par avion Voir le message
    C'est bien d'écrire et chercher la logique, mais je pense que c'est mieux de tester son code à chaque fois ! Au moins le résultat, nous situe au fur et à mesure qu'on avance .
    Sauf que comme ça, on ne peut résoudre que de tous petits problèmes prévus pour les écoliers qui commencent du tout début.

    Pour faire un programme, un vrai, du genre qui sert à quelque chose, et dont notre métier c'est d'en faire, là il faut comprendre la logique. Il n'y a pas le choix, rien d'autre ne marche.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Nouveau membre du Club Avatar de ImBehoRE
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Polynésie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2018
    Messages : 23
    Points : 31
    Points
    31
    Par défaut
    Je sais qu'elle est résolue, mais pourquoi ne pas utilisé une condition ?
    Avec un if l'on pourrait obtenir un résultat, non ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (i=0; i<nb; i++) {
    System.out.println("bonjour")
    }
    Est-ce que ça marcherait ?

  12. #12
    Membre éprouvé Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Points : 1 014
    Points
    1 014
    Par défaut
    Citation Envoyé par avion Voir le message
    C'est bien d'écrire et chercher la logique, mais je pense que c'est mieux de tester son code à chaque fois ! Au moins le résultat, nous situe au fur et à mesure qu'on avance . Merci quand même d'essayer d'aider!
    En fait il faut faire les deux.
    Chercher la logique ça permet de comprendre ce que l'on fait. Il faut le faire un amont, pour savoir qu'est-ce qu'on veut programmer, comment va-t-on s'y prendre. Pendant, pour pas écrire n'importe quoi. Et souvent après quand on cherche une erreur ou une amélioration.
    Tester, ça permet de valider que ce qu'on a fait est juste (ou en tout cas qu'on a pas encore trouvé de bug).

    Dans ton cas, tester t'as permis de voir qu'il y avait un souci. Chercher la logique a permit de voir d'ou ça venait, et donc de trouver la solution.

    Citation Envoyé par ImBehoRE Voir le message
    Je sais qu'elle est résolue, mais pourquoi ne pas utilisé une condition ?
    Avec un if l'on pourrait obtenir un résultat, non ?[/CODE]
    Est-ce que ça marcherait ?
    Tu veux dire une boucle for ? Oui cela marche aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for(int i=0; i<n; i++) {
        System.out.println("Bonjour ;-)");
    }
    "On sera toujours mieux installé assis en 1ère que debout en 2nde", un illustre inconnu


    Avant de poser une question vérifiez si elle n'a pas déjà une réponse dans les cours et tutoriels
    Si votre problème est pensez à marquer la conversation comme telle
    Si un message est utile, pertinent, et/ou vous êtes d'accord avec, pensez à à l'inverse s'il est inutile, faux ou que vous n'êtes pas d'accord, pensez à

  13. #13
    Nouveau membre du Club Avatar de ImBehoRE
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Polynésie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2018
    Messages : 23
    Points : 31
    Points
    31
    Par défaut
    Citation Envoyé par Drowan Voir le message

    Tu veux dire une boucle for ? Oui cela marche aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for(int i=0; i<n; i++) {
        System.out.println("Bonjour ;-)");
    }
    Oui autant pour moi une boucle for est mieux adapter

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Pourquoi ce programme ne m'affiche pas le bonjour
    Par phenix1988 dans le forum C++
    Réponses: 6
    Dernier message: 29/01/2009, 17h15
  2. Réponses: 14
    Dernier message: 30/03/2005, 21h50
  3. [JOptionPane] [JTable] la boite de Dialogue s'affiche 2 fois
    Par norkius dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 01/02/2005, 14h12
  4. Afficher 2 fois le meme JPanel
    Par cmoulin dans le forum Composants
    Réponses: 3
    Dernier message: 11/05/2004, 09h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo