Commande dans un restaurant

Heno -  
 greenthumb -
Bonjour,
J'ai terminée mon programme, mais voilà que je le test et ça m'écris des erreurs que je ne comprends pas. Ca me dit qu'à la ligne 65 ')' expected, sauf que je ne vois pas ou il manque ce ')' et ça écris illegal start of expression (toujours à la même ligne). Ensuite, pour la ligne 76, ça m'écris not a statement et ';' expected, mais encore là je ne vois pas ou il manque ce ';'. Ce dois vraiment être une niaserie, mais quand on débute en programmation il faut faire ce genre d'erreur pour mieux comprendre... quequ'un peux m'aider s.v.p. (je commence a désespérer) Merci d'avance!

Voilà mon programme:

/**
* @(#)tp3no1.java
*
*
* @author
* @version 1.00 2008/4/8
*/

import java.io.*;
public class Tp3no1 {

/* TP3No1 : Saisir une commande au clavier( nombre de plats et un plat donné)
* et afficher la commande
* Auteur : Genevieve Henault
* Code permanant : HENG04628606
*/

// lecture du nombre de plats à commander

int lireNombre(int min, int max);
{
int nb;
do
{
nb = Utile.lireEntier("Entrer le nombre de plats que vous desirez : ");

}
while(nb < min || nb > max);

return nb;

} //fin LireNombre

// lecture du genre de plats à commander

char lirePlat();
{
char ch;
do
{
ch = Utile.lireCaractere("Entrer le plat choisi ( P: pizza, S: sushi, C: couscous ): ");
ch = String.toLowerCase (ch);
ch = String.toUpperCase (ch);
}
while((ch!='P') && (ch!='S') && (ch!='C'));

return ch;
} // LirePlat

// principal

public static void main (String [] args) throws IOException
{

char plat;
int nbPlats;

nbPlats = lireNombre(1, 4 );
plat = lirePlat();

System.out.println ("\nVous avez choisi : "
+ nbPlats "Plat(s)"); // LIGNE 65

if ( plat == 'C' )
{
System.out.println( "marocain(s) ");
}
else if ( plat == 'P' )
{
System.out.println( "italien(s) ");
}
else (plat == 'S') // LIGNE 76
{
System.out.println( "japonais");
}

} // fin main

}
A voir également:

2 réponses

greenthumb
 
bonsoir,

Ligne 65 : + nbPlats + "Plat(s)"); // LIGNE 65

n'oublie pas de mettre un + entre les differents éléments que tu veux afficher ;)

Ligne 76 : else (plat == 'S') // LIGNE 76

ici tu a deux solutions : 1/ soit tu laisses un else, mais dans ce cas il n'y a pas de conditions après un else, et le programme rentrera dans cette partie du code si plat est different de "P" et de "C". Ton code deviendrait alors :
else {
//japonais
}
2/ soit tu fais comme ceci :
else if(plat == 'S') {
//japonais
}
else {
//erreur dans le choix du plat
}
Dans ce cas, si plat est égal à "S", le programme effectuera le traitement du plat japonais sinon il indiquera une erreur dans le choix du plat

J'espère t'avoir aidé et avoir été clair :)
0
Heno
 
Merci pour la réponse... c'est vraiment apprécié...
Maintenant il m'affiche qu'à la ligne 23 ')' expected, illegal start of type, <identifier> expected, ';'expected

???

/**
* @(#)tp3no1.java
*
*
* @author
* @version 1.00 2008/4/8
*/

import java.io.*;
public class Tp3no1 {

/* TP3No1 : Saisir une commande au clavier( nombre de plats et un plat donné)
* et afficher la commande
* Auteur : Genevieve Henault
* Code permanant : HENG04628606
*/

// lecture du nombre de plats à commander

int lireNombre(int min=1, int max=4); // LIGNE 23
{
int nb;
do
{
nb = Utile.lireEntier("Entrer le nombre de plats que vous desirez : ");

}
while(nb < min || nb > max);

return nb;

} //fin LireNombre

// lecture du genre de plats à commander

char lirePlat();
{
char ch;
do
{
ch = Utile.lireCaractere("Entrer le plat choisi ( P: pizza, S: sushi, C: couscous ): ");
ch = String.toLowerCase (ch);
ch = String.toUpperCase (ch);
}
while((ch!='P') && (ch!='S') && (ch!='C'));

return ch;
} // LirePlat

// principal

public static void main (String [] args) throws IOException
{

char plat;
int nbPlats;

nbPlats = lireNombre(1, 4 );
plat = lirePlat();

System.out.println ("\nVous avez choisi : "
+ nbPlats + "Plat(s)");

if ( plat == 'C' )
{
System.out.println( "marocain(s) ");
}
else if ( plat == 'P' )
{
System.out.println( "italien(s) ");
}
else if (plat == 'S')
{
System.out.println( "japonais");
}
else
{
System.out.println( "Erreur dans le choix du plat");
}
} // fin main

}
0
greenthumb
 
si on peut s'aider... ;)

int lireNombre(int min=1, int max=4); // LIGNE 23

ici, vous déclarez une méthode qui s'appelle lireNombre et qui attend deux entiers. Lorsque l'on déclare la méthode, il ne faut en aucun cas mettre un point virgule en fin de ligne... le point virgule est utilisé lorsque vous appelez cette méthode dans votre main() ;)

Ensuite, vous ne pouvez pas mettre min=1, max=4.
C'est lors de l'appel de la méthode dans votre main() que vous devez mettre les valeurs des arguments min et max, comme vous l'avez fait d'ailleurs.
Donc pour résumer :

Déclaration de la méthode :

int lireNombre(int min, int max) {
//code de la methode
}

appel de la méthode :

lireNombre(1, 4); //dans ce cas, min = 1 et max = 4

Vous comprenez ?
0