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
Max - 11 oct. 2007 à 17:58
A voir également:
- Java-déclaration de variable
- Déclaration de revenus - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
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
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
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
Utilisateur anonyme
30 juin 2005 à 00:37
30 juin 2005 à 00:37
Bonsoir,
int i = 10; // par exemple
c'est ok?
@+
int i = 10; // par exemple
c'est ok?
@+
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
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
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
Utilisateur anonyme
30 juin 2005 à 01:47
30 juin 2005 à 01:47
il faut alors implémenter l'exception NumberFormatException:
C'est ça?
@+
try { dbage = Lire.d(); } catch(NumberFormatException) { // Ce qui arrive si l'utilisateur n'entre pas un double }
C'est ça?
@+
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
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
Merci énormément pour ton aide,
tutu
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question