[Java] variable scanner boucle do...while
Résolu
wolfsen
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
wolfsen Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
wolfsen Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Si vous êtes pressés, je vais résumer mon topic à cette question:
Comment faire pour qu'à chaque nouvelle boucle, le programme crée une nouvelle variable scanner sc(n+1) que l'utilisateur pourra remplir à nouveau s'il vérifie les conditions?
Maintenant en version longue:
Je fais du java depuis 1 mois et donc pour m'entrainer je souhaite créer un programme simple qui permet une sélection de nom de personnage semblable à celle des rpgs:
-On demande au joueur de choisir un nom
-S'il confirme, on lui affiche "votre personnage s'appelle x"
-S'il ne confirme pas on lui redemande un nom et ainsi de suite jusqu'à ce qu'il confirme
Je suis parti sur ça:
String IG; //IG comme in game name
System.out.println("Choisissez votre nom");
Scanner scIG = new Scanner(System.in);
IG=scIG.nextLine();
System.out.println("Voulez vous vous appeler "+ IG+"? Ecrire oui ou non.");
String sure,oui,non;
oui="oui";
non="non";
Scanner scSure = new Scanner(System.in);
sure=scSure.nextLine();
if (sure.equals(oui))
{
System.out.println("Votre personnage s'appelle désormais " +IG+"!");
}
else
do{
System.out.println("Choisissez votre nom");
Scanner scIG2 = new Scanner(System.in);
IG=scIG2.nextLine();
System.out.println("Voulez vous vous appeler "+ IG+"? Ecrire oui ou non.");
Scanner scSure2 = new Scanner(System.in);
sure=scSure.nextLine();
}
while(sure.compareTo(oui) == 1);
Le problème de mon programme est qu'il ne permet de redemander le nom qu'une seule fois, parce que la boucle me permet créer qu'1 seule nouvelle variables scIG2 écrire à la main. Donc j'aimerais savoir s'il y a moyen qu'à chaque nouvelle boucle de créer une variable scIG(n+1) pour pouvoir exécuter la boucle autant de fois que je veux. Je pourrais peut-être utiliser la boucle for, mais je ne veux pas d'incrémentation de la variable, juste a création d'une nouvelle à chaque boucle.
Merci de vos réponses
Si vous êtes pressés, je vais résumer mon topic à cette question:
Comment faire pour qu'à chaque nouvelle boucle, le programme crée une nouvelle variable scanner sc(n+1) que l'utilisateur pourra remplir à nouveau s'il vérifie les conditions?
Maintenant en version longue:
Je fais du java depuis 1 mois et donc pour m'entrainer je souhaite créer un programme simple qui permet une sélection de nom de personnage semblable à celle des rpgs:
-On demande au joueur de choisir un nom
-S'il confirme, on lui affiche "votre personnage s'appelle x"
-S'il ne confirme pas on lui redemande un nom et ainsi de suite jusqu'à ce qu'il confirme
Je suis parti sur ça:
String IG; //IG comme in game name
System.out.println("Choisissez votre nom");
Scanner scIG = new Scanner(System.in);
IG=scIG.nextLine();
System.out.println("Voulez vous vous appeler "+ IG+"? Ecrire oui ou non.");
String sure,oui,non;
oui="oui";
non="non";
Scanner scSure = new Scanner(System.in);
sure=scSure.nextLine();
if (sure.equals(oui))
{
System.out.println("Votre personnage s'appelle désormais " +IG+"!");
}
else
do{
System.out.println("Choisissez votre nom");
Scanner scIG2 = new Scanner(System.in);
IG=scIG2.nextLine();
System.out.println("Voulez vous vous appeler "+ IG+"? Ecrire oui ou non.");
Scanner scSure2 = new Scanner(System.in);
sure=scSure.nextLine();
}
while(sure.compareTo(oui) == 1);
Le problème de mon programme est qu'il ne permet de redemander le nom qu'une seule fois, parce que la boucle me permet créer qu'1 seule nouvelle variables scIG2 écrire à la main. Donc j'aimerais savoir s'il y a moyen qu'à chaque nouvelle boucle de créer une variable scIG(n+1) pour pouvoir exécuter la boucle autant de fois que je veux. Je pourrais peut-être utiliser la boucle for, mais je ne veux pas d'incrémentation de la variable, juste a création d'une nouvelle à chaque boucle.
Merci de vos réponses
A voir également:
- [Java] variable scanner boucle do...while
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Scanner qr code pc - Guide
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
2 réponses
Tu n'as pas besoin de créer plusieurs fois de Scanner sur System.in, là tu le fais 4 fois (scIG1, scSure, sciG2, scSure2) ce qui est beaucoup trop !
En fait tes Scanner sont tous liés à System.in qui est de toute façon unique, donc il est inutile de créer de double, un seul suffira.
En fait tes Scanner sont tous liés à System.in qui est de toute façon unique, donc il est inutile de créer de double, un seul suffira.
final Scanner clavier = new Scanner(System.in); String IG; //IG comme in game name String sure, oui="oui", non="non"; do { System.out.println("Choisissez votre nom"); IG = clavier.nextLine(); do { System.out.println("Voulez vous vous appeler "+ IG+" ? Ecrire "+oui+" ou "+non); sure=clavier.nextLine(); } while(!sure.equals(oui) && !sure.equals(non)); } while(!sure.equals(oui)); System.out.println("Votre personnage s'appelle désormais "+IG+" !");
Merci beaucoup KX, en fait mon erreur était plutôt une erreur de compréhension à propos du scanner, je pensais que chacune des entrées clavier résultaient en une variable et donc qu'il fallait à chaque fois en recréer une pour pouvoir entrer une nouvelle donnée.
J'ai juste réutilisé ta simplification du scanner en clavier, sinon j'ai refais tout le reste par moi même (j'ai rien contre toi, juste qu'il faut que je sache le faire moi même plutôt que de copier sur le tiens). C'est un peu plus long mais c'est du fait maison :D
final Scanner clavier = new Scanner(System.in);
String IG;
System.out.println("Choisissez votre nom");
IG = clavier.nextLine();
System.out.println("Voulez vous vous appeler "+ IG+"? Ecrire oui ou non.");
String sure,oui,non;
oui="oui";
non="non";
sure=clavier.nextLine();
if (sure.equals(oui))
{
System.out.println("Votre personnage s'appelle désormais " +IG+"!");
}
else
do{
System.out.println("Choisissez votre nom");
IG=clavier.nextLine();
System.out.println("Voulez vous vous appeler "+ IG+"? Ecrire oui ou non.");
sure=clavier.nextLine();
}
while(!sure.equals(oui));
Voilà merci
J'ai juste réutilisé ta simplification du scanner en clavier, sinon j'ai refais tout le reste par moi même (j'ai rien contre toi, juste qu'il faut que je sache le faire moi même plutôt que de copier sur le tiens). C'est un peu plus long mais c'est du fait maison :D
final Scanner clavier = new Scanner(System.in);
String IG;
System.out.println("Choisissez votre nom");
IG = clavier.nextLine();
System.out.println("Voulez vous vous appeler "+ IG+"? Ecrire oui ou non.");
String sure,oui,non;
oui="oui";
non="non";
sure=clavier.nextLine();
if (sure.equals(oui))
{
System.out.println("Votre personnage s'appelle désormais " +IG+"!");
}
else
do{
System.out.println("Choisissez votre nom");
IG=clavier.nextLine();
System.out.println("Voulez vous vous appeler "+ IG+"? Ecrire oui ou non.");
sure=clavier.nextLine();
}
while(!sure.equals(oui));
Voilà merci