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 :

Question de débutant


Sujet :

avec Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2017
    Messages : 4
    Par défaut Question de débutant
    Salut à vous, je débute à peine en programmation JAVA et j'apprends en autodidacte (juste pour l'amour du code). Sinon pour me présenter vite fais, je suis développeur web (juste pour le fun aussi).

    Bon voilà, j'ai décidé de faire un petit code pour compter les caractères afin de bien revoir ce que j'ai appris ... voici mon code :

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    package project1;
     
    import java.util.Scanner;
     
    public class Main {
     
    	public static void main(String[] args) {
     
    		Scanner sc = new Scanner(System.in);
    		char reponse = 'o';
     
     
    		System.out.println("COMPTEUR DE CARACTERES : \n-------------------------");
     
    		while(reponse == 'o') {
     
    			System.out.println("Veuillez entrer un texte : \n");
    			int text = sc.nextLine().length();
    			System.out.println("\nVotre texte contient " +text+ " caractères.");
    			reponse = ' ';
     
    			while(reponse != 'o' && reponse != 'n') {
     
    				System.out.println("Voulez-vous recommencer ? (O/N)");
    				sc.nextLine();
    				reponse = sc.nextLine().charAt(0);
     
    			}
     
    		}
     
    		System.out.println("Au revoir !");
     
    	}
    Rien de bien foufou ! Bon, j'aimerai juste comprendre un truc ... pourquoi lors de l'utilisation de ce code, au moment de taper 'O' ou 'N' afin de recommencer, il faut taper deux fois la réponse afin de "débloquer" la seconde boucle.
    Essayez et vous comprendrez ^^

    Ps: J'ai essayé avec des Do ... While mais c'est pareil ; je ne vois pas où est l'erreur et ça doit vraiment être bête ^^.

  2. #2
    Membre habitué
    Homme Profil pro
    Autodidacte
    Inscrit en
    Décembre 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Autodidacte

    Informations forums :
    Inscription : Décembre 2016
    Messages : 12
    Par défaut
    Car tu demandes 2 scan ici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    System.out.println("Voulez-vous recommencer ? (O/N)");
    sc.nextLine();
    reponse = sc.nextLine().charAt(0);
    La deuxième ligne est inutile. C'est un scan tout seul. La troisième ligne est l'enregistrement du premier char d'un nouveau scan et pas du scan precedent.

    Tu as ordonné "sc, scan la prochaine ligne. sc, modifie la valeur de reponse par le char 0 de la prochaine ligne". Ce qui donne bien 2 scan de 2 lignes au total.

    Je pense que dans ta logique tu pensais faire ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    System.out.println("Voulez-vous recommencer ? (O/N)");
    String nextline = sc.nextLine();
    reponse = nextline.charAt(0);
    Là ça marche impec mais le plus correct c'est tout simplement ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    System.out.println("Voulez-vous recommencer ? (O/N)");
    reponse = sc.nextLine().charAt(0);

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2017
    Messages : 4
    Par défaut
    Ah c'est donc ça !

    J'avais lu qu'il fallait vider le scan pour éviter les erreurs ... j'ai pas du bien comprendre ! Merci pour ton éclaircissement

  4. #4
    Membre habitué
    Homme Profil pro
    Autodidacte
    Inscrit en
    Décembre 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Autodidacte

    Informations forums :
    Inscription : Décembre 2016
    Messages : 12
    Par défaut
    Il faut vider le buffer quand on passe par exemple de nextInt() a nextLine(). Donc pas besoin dans ton exemple

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2017
    Messages : 4
    Par défaut
    Merci beaucoup ... tu expliques tellement mieux

    D'ailleurs je recherche un "coach" à qui je peux poser des questions si ça t'intéresse ! Je serai ravi de pouvoir apprendre aux côtés de quelqu'un de qualifié pour répondre à mes questions

  6. #6
    Membre habitué
    Homme Profil pro
    Autodidacte
    Inscrit en
    Décembre 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Autodidacte

    Informations forums :
    Inscription : Décembre 2016
    Messages : 12
    Par défaut
    Oulah attention tu t'enflammes Je suis comme toi, tout juste débutant. Avec seulement quelques semaines d'avance Je veux bien un coach aussi lol.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2017
    Messages : 4
    Par défaut
    Ahah d'accord, tu apprends comment toi ? D'ailleurs tu sais ou on peut trouver des exercices pas trop dur ? (Et j'entends par la des exercices de programmation, pas de maths avec des variables mdr ).
    En tout cas si un jour tu veux apprendre le langage web je pourrai t'aider lol

Discussions similaires

  1. Réponses: 13
    Dernier message: 23/06/2005, 10h56
  2. question de débutant sur les objets
    Par boucher_emilie dans le forum ASP
    Réponses: 3
    Dernier message: 06/08/2004, 10h51
  3. [MFC] Quelques questions de débutant...
    Par Sephi dans le forum MFC
    Réponses: 4
    Dernier message: 20/02/2004, 17h25
  4. Questions de débutant
    Par J-P-B dans le forum XMLRAD
    Réponses: 12
    Dernier message: 24/07/2003, 15h19
  5. [HyperFile] 2 questions de débutant
    Par khan dans le forum HyperFileSQL
    Réponses: 2
    Dernier message: 29/04/2002, 23h18

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