Soucis JAVA vérification d'une lecture
benjamin.rousseau
Messages postés
15
Statut
Membre
-
benjamin.rousseau Messages postés 15 Statut Membre -
benjamin.rousseau Messages postés 15 Statut Membre -
Bonjour,
Voila, j'ai un mini-jeu en programme java.
Et en faite, au début de la partie j'ai une lecture d'un nombre.
Je voudrais qu'avec une boucle while je vérifie que ce que rentre le joueur ne soit pas une chaine de caractère .
Mais je n'y arrive pas, je ne trouve pas.
Comment vérifier que ce qu'il rentre est un nombre compris entre 1 et ...x et pas une chaine de caractère?
Merci beaucoup
Voila, j'ai un mini-jeu en programme java.
Et en faite, au début de la partie j'ai une lecture d'un nombre.
Je voudrais qu'avec une boucle while je vérifie que ce que rentre le joueur ne soit pas une chaine de caractère .
Mais je n'y arrive pas, je ne trouve pas.
Comment vérifier que ce qu'il rentre est un nombre compris entre 1 et ...x et pas une chaine de caractère?
Merci beaucoup
A voir également:
- Soucis JAVA vérification d'une lecture
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Waptrick java voiture - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
5 réponses
Voici un exemple :
import java.util.*;
public class Test
{
public static final int MAX = 50; // nombre maximum
public static Scanner sc = new Scanner(System.in);
public static void main(String[] args)
{
int nbre = 0;
boolean ok = false;
do
{
System.out.print("Entrez un nombre entier entre 1 et " + MAX + " : ");
nbre = sc.nextInt();
if(nbre >= 1 && nbre <= MAX)
{
ok = true;
}
else
{
System.out.println("Le nombre n'est pas compris entre 1 et " + MAX + " !\n");
}
}while(!ok);
System.out.println("\nLe nombre " + nbre + " est bon !");
}
}
Salut,
Ok mais il faut vérifier qu'on a bien entré une valeur numérique.
Cordialement,
Dan
Ok mais il faut vérifier qu'on a bien entré une valeur numérique.
import java.util.*;
public class TestNbre
{
private static final int MAX = 50; // nombre maximum
private static Scanner sc = new Scanner(System.in);
public static void main(String[] args)
{
int nbre = 0;
boolean encore = true;
boolean ok = false;
while(encore)
{
encore = false;
do
{
nbre = 0;
System.out.print("Entrez un nombre entier >0 et <" + (MAX+1) + " : ");
try
{
nbre = sc.nextInt();
if(nbre >= 1 && nbre <= MAX)
{
ok = true;
}
else
{
System.out.println("\nLe nombre " + nbre + " n'est pas une valeur >0 et <"
+ (MAX+1) + "!!!\n");
ok = false;
}
}
catch(InputMismatchException iMe)
{
System.err.printf( "\nNON NUM. (ou trop long pour int)\n",
iMe);
sc.nextLine();
System.out.println(
"Vous devez entrer une valeur numerique >0 et <51\n");
ok = false;
}
}while(!ok);
System.out.println("\n\nLe nombre " + nbre + " est bon !");
sc.nextLine();
System.out.print("\nVoulez vous entrer un autre nombre? oui par defaut "
+ "(val. quelconque si non): ");
String ouiNon = sc.nextLine();
if(ouiNon.equals(""))
{
System.out.println("");
encore = true;
}
else
{
encore = false;
System.out.println("\nFIN");
}
}
}
}
Cordialement,
Dan
merci beaucoup,
mais il n'existe pas quelque chose de plus simple ? Car moi c'est un programme simple, je test deja avec un if pour que le nombre ne soit pas négatif.
Cela serait plus imple avec une condition..
mais il n'existe pas quelque chose de plus simple ? Car moi c'est un programme simple, je test deja avec un if pour que le nombre ne soit pas négatif.
Cela serait plus imple avec une condition..
Re,
Il faut alors AVANT que tu fasses tes contrôles "avec un if" pour savoir s'il est dans les limites 1 à x, et s'il est positif, que tu contrôle s'il ne contient que du numérique:
Ce n'est pas énorme non! et c'est fiable...
Cordialement,
Dan
Il faut alors AVANT que tu fasses tes contrôles "avec un if" pour savoir s'il est dans les limites 1 à x, et s'il est positif, que tu contrôle s'il ne contient que du numérique:
Scanner sc = new Scanner(System.in);
int nbre;
boolean ok = false;
do
{
ok = true;
nbre = 0;
System.out.print("Entrez un nombre entier: ");
try
{
nbre = sc.nextInt();
}
catch(InputMismatchException iMe)
{
System.err.printf( "\nNON NUM. (ou trop long pour int)\n");
sc.nextLine();
System.out.println(
"Vous devez entrer une valeur numerique\n");
ok = false;
}
}while(!ok);
// suite du traitement);
Ce n'est pas énorme non! et c'est fiable...
Cordialement,
Dan
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question