Java-déclaration de variable

Résolu/Fermé
tutunice Messages postés 115 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 2 juillet 2005 - 29 juin 2005 à 23:49
 Max - 11 oct. 2007 à 17:58
Bonjour,
J'apprends à développer sous jaja et j'ai besoin de déclarer une variable qui soit exclusivement numérique, et de surcroit entiere.
Elle ne doit pas prendre la valeur d'une lettre.
Est-il possible de déclarer une variable de ce type?
Merci de votre aide,
tutu
A voir également:

5 réponses

tutunice Messages postés 115 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 2 juillet 2005 41
2 juil. 2005 à 02:46
Bonjour philtrain,
J'ai étudié la question.
En fait, ta proposition est juste, à tel point que c'est la classe Lire qui s'en charge, donc elle prend la main dans la proposition que tu m'as donnée, mais tu ne pouvais pas le savoir, vu que tu n'as pas le code!

Ce sont mes profs qui l'ont mis au point , le voici :
-------------------------------------------------------------------------------
import java.io.*;
public class Lire
{
public static String S() // Lire un String
{
String tmp = "";
char C='\0';
try {
while ((C=(char) System.in.read()) !='\n')
{
if (C != '\r') tmp = tmp+C;

}
}
catch (IOException e)
{
System.out.println("Erreur de frappe");
System.exit(0);
}
return tmp;
} // fin de S()

public static byte b() // Lire un entier byte
{
byte x=0;
try {
x=Byte.parseByte(S());
}
catch (NumberFormatException e) {
System.out.println("Format numérique incorrect");
System.exit(0);
}
return x ;
}

public static short s() // Lire un entier short
{
short x=0;
try {
x=Short.parseShort(S());
}
catch (NumberFormatException e) {
System.out.println("Format numérique incorrect");
System.exit(0);
}
return x ;
}

public static int i() // Lire un entier
{
int x=0;
try {
x=Integer.parseInt(S());
}
catch (NumberFormatException e) {
System.out.println("Format numérique incorrect");
System.exit(0);
}
return x ;
}

public static long l() // Lire un entier long
{
long x=0;
try {
x=Integer.parseInt(S());
}
catch (NumberFormatException e) {
System.out.println("Format numérique incorrect");
System.exit(0);
}
return x ;
}

public static double d() // Lire un double
{
double x=0.0;
try {
x=Double.valueOf(S()).doubleValue();
}
catch (NumberFormatException e) {
System.out.println("Format numérique incorrect");
System.exit(0);
}
return x ;
}

public static float f() // Lire un float
{
float x=0.0f;
try {
x=Double.valueOf(S()).floatValue();
}
catch (NumberFormatException e)
{
System.out.println("Format numérique incorrect");
System.exit(0);
}
return x ;
}

public static char c() // Lire un caractere
{
String tmp=S();
if (tmp.length()==0)
return '\n';
else
{
return tmp.charAt(0);
}
}
}
-------------------------------------------------------------------------------


Donc tu avais juste, mais on ne peut pas appliquer telle quelle ta soluition sans modifier la classe Lire.
Je te remercie
tutu
3
Utilisateur anonyme
30 juin 2005 à 00:37
Bonsoir,

int i = 10; // par exemple

c'est ok?

@+
0
tutunice Messages postés 115 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 2 juillet 2005 41
30 juin 2005 à 01:28
En fait, ce que je souhaite c'est, si l'utilisateur rentre une lettre,pouvoir lui dire de recommencer sa saisie.
Et le probleme c'est que le programme renvoie systematiquement un message "format numérique incorrect" qui met fin au programme.
J'ai limité les erreurs de saisie mais ce n'est que du bidouillage.

Le probleme reste donc posé.
C'est la variable dbage qui pose probleme(je l'ai mis en double)
Voici le code :


//-------------------------------PROGRAMME TQAGE

public class Tqage11
{
public static void main(String [] argument)
{
double dbage ; //definition des variables
char chrep ;
chrep = 'o' ; //on définit la valeur oui à l'origine


while(chrep == 'o')
{
System.out.print("Entrez votre age: ");//saisie de l'age
dbage=Lire.d();

if((dbage<0)||(dbage>=200))
System.out.println("veuillez vérifier votre saisie, merci");
else
if((dbage<18)&&(dbage>0))
System.out.println("Erreur!Ce programme est reserve aux personnes majeures non retraitees.");
else
if((dbage>65)&&(dbage<200))
System.out.println("Erreur!Ce programme est reserve aux personnes majeures non retraitees.");
else
do
{
if((17<dbage)&&(dbage<27))
System.out.println("Statut JEUNE");
else
if((26<dbage)&&(dbage<66))
System.out.println("Statut ADULTE");
System.out.print("Voulez-vous recommencer ? (o-n) : ");
chrep=Lire.c();

while((chrep!='o')&&(chrep!='n'))
{
System.out.print("merci d'indiquer oui par o et non par n ");
System.out.print("oui=o ou non=n ? : ");
chrep= Lire.c();
}
}
while((chrep!='o')&&(chrep!='n'));

}
System.out.println("Fin");
}
}


merci pour ton aide,
tutu
0
Utilisateur anonyme
30 juin 2005 à 01:47
il faut alors implémenter l'exception NumberFormatException:

try {
    dbage = Lire.d();
}
catch(NumberFormatException) {
    // Ce qui arrive si l'utilisateur n'entre pas un double
}


C'est ça?

@+
0
tutunice Messages postés 115 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 2 juillet 2005 41
30 juin 2005 à 01:55
Il est tard, je vais me reposer, j'étudierai demain ta proposition et te tiendrai au courant au plus tôt.
Merci énormément pour ton aide,
tutu
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tu mets "Int"
Max
0