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

Langage Java Discussion :

Problème de Boucle + Scanner


Sujet :

Langage Java

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 61
    Points : 40
    Points
    40
    Par défaut Problème de Boucle + Scanner
    Bonjour,

    Je cherche depuis 2 heures sans réussir a comprendre comment reussir a faire une boucle respectant la condition suivant :

    -- la premiere lettre du Scanner taper ne doit pas etre differente de O ou N sinon àa repete jusqu'à la bonne touche est entrée


    Mon code actuellement après divers essai donc en pele-mele :

    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
    import java.util.Scanner;
     
     
    public class Boucle {
     
    	/**
             * @param args
             */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
     
    		Scanner sc = new Scanner(System.in);
    		System.out.println("Veuillez saisir un mot :");
    		String str = sc.nextLine();
    		System.out.println("Vous avez saisi : " + str);
     
    		char sc1 = str.charAt(0);
     
    		while(sc1 != '0' || sc1 != 'N')
    		{
    			System.out.println("La valeur tapé est :" +sc1);
    			System.out.println("Veuillez suivre les instructions ci-dessous :");
    			System.out.println("Si vous êtes prêt, tapez O,sinon tapez N");
     
    			Scanner sc = new Scanner(System.in);
    			System.out.println("Veuillez saisir un mot :");
    			String str = sc.nextLine();
    			System.out.println("Vous avez saisi : " + str);
     
    		}
    		System.out.println("imprimante OK");
    	}
     
    }
    Si quelqu' un a une idée, je serais très reconnaissant car je sèche malgré les tutoriel et autres outils pour débuter

  2. #2
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    Il faut que tu recharge sc1 dans la boucle :
    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
    35
    36
     
    import java.util.Scanner;
     
     
    public class Boucle {
     
    	/**
             * @param args
             */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
     
    		Scanner sc = new Scanner(System.in);
    		System.out.println("Veuillez saisir un mot :");
    		String str = sc.nextLine();
    		System.out.println("Vous avez saisi : " + str);
     
    		char sc1 = str.charAt(0);
     
    		while(sc1 != '0' || sc1 != 'N')
    		{
    			System.out.println("La valeur tapé est :" +sc1);
    			System.out.println("Veuillez suivre les instructions ci-dessous :");
    			System.out.println("Si vous êtes prêt, tapez O,sinon tapez N");
     
    			Scanner sc = new Scanner(System.in);
    			System.out.println("Veuillez saisir un mot :");
    			String str = sc.nextLine();
    			System.out.println("Vous avez saisi : " + str);
     sc1 = str.charAt(0);
     
    		}
    		System.out.println("imprimante OK");
    	}
     
    }
    autant l'hiver éclate que l'hétéroclite
    le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 61
    Points : 40
    Points
    40
    Par défaut
    hum visiblement ça fonctionne pas malgré ce rechargement ça boucle indéfiniment ...

    Une idée du pourquoi du comment ?

  4. #4
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    J'avais pas vu. Il faut un && dans ta boucle. Tu continue si la valeur est différente de O ET différente de N.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    		while(sc1 != '0' && sc1 != 'N')
    autant l'hiver éclate que l'hétéroclite
    le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre

  5. #5
    Membre confirmé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Points : 616
    Points
    616
    Par défaut
    Bien vu.

    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
     
    import java.util.Scanner;
     
     
    public class Boucle 
    {
     	public static void main(String[] args) 
    	{
     
    		Scanner sc = new Scanner(System.in);
    		String str;	
    		char sc1 = '\n';
     
    		while(sc1 != 'O' && sc1 != 'N')
    		{			
    			System.out.println("\n Veuillez saisir un mot :");
     
    			str = sc.nextLine();
    			System.out.println("\n Vous avez saisi : " + str);
     
    			sc1 = str.charAt(0);
    			System.out.println("\n La valeur tape est :" +sc1);
     
    			if(sc1 == 'O')
    					System.out.println("\n YES ---> O ");
    		}
    		System.out.println("imprimante OK");
    	}
     
    }
    Ca devrait marcher.

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 61
    Points : 40
    Points
    40
    Par défaut
    Merci mille fois pour ton aide ça m' a permis d'avancer un peu

    Voici le code final de cette boucle si ça intéresse des fois que

    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
    import java.util.Scanner;
     
     
    public class Boucle {
     
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
     
    		Scanner sc = new Scanner(System.in);
    		System.out.println("Si vous êtes prêt, tapez O, sinon tapez N");
    		String str = sc.nextLine();
    		System.out.println("La valeur tapé est : " +str.charAt(0));
     
    		char sc1 = str.charAt(0);
     
    		while(sc1 != 'O' && sc1 != 'N' && sc1 !='o' && sc1 != 'n')
    		{
     
    			System.out.println("\nVeuillez suivre les instructions ci-dessous : ");
    			System.out.println("\nSi vous êtes prêt, tapez O, sinon tapez N");
     
    			new Scanner(System.in);
    			System.out.println("\nEtes-vous prêt ?");
    			String str2 = sc.nextLine();
    			System.out.println("Vous avez saisi : " + str2.charAt(0));
    			sc1 = str2.charAt(0);
     
    		}
    		System.out.println("\nimprimante OK");
    	}
     
    }

  7. #7
    Membre confirmé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Points : 616
    Points
    616
    Par défaut
    N'oublie pas de signaler que ton problème est résolu.

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

Discussions similaires

  1. Problème de boucles imbriquées
    Par Gnux dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 09/12/2005, 20h26
  2. [Tableaux] Problème avec boucle
    Par MYster dans le forum Langage
    Réponses: 6
    Dernier message: 11/11/2005, 18h39
  3. Problème de boucle
    Par TheUltimaSephiroth dans le forum C
    Réponses: 8
    Dernier message: 10/10/2005, 13h58
  4. Problème de boucle
    Par Louis-Guillaume Morand dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/09/2005, 09h10
  5. Problème de boucle
    Par basclln dans le forum C++
    Réponses: 19
    Dernier message: 02/04/2005, 09h13

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