select case

select case - C++ - Programmation

Marsh Posté le 08-11-2002 à 15:12:57    

Salut
j'ai erreur au niveau de mon switch , je vois pas pourkoi
#include <iostream>
int main()
{  
   int a,b,result;
   char op;
   //------------------------------------------------
   do
   {
   cout << "Entrez le premier nombre: ";
   cin >> a;
   }
   while (a>=0);
   //---------------------------------------------------
   do
   {
   cout << "Entrez le deuxième nombre: ";
   cin >> b;
   }
   while (b>=0);
   //---------------------------------------------------
   do{
   cout << "Entrer l'opération souhaiter :+,-,*";
   cin >> op;
   }
   while(op =='+',op =='-',op =='*';)
   //---------------------------------------------------
   switch (op) // selon op
   {
   case"+":result=a+b;
          break;
   case"-":result=a-b;
   break;
   case"*":result=a*b;
   default:cout << "erreur de saisie!";
   }
   cout << "le résultat est:"<<result
}


---------------
http://www.independza.com
Reply

Marsh Posté le 08-11-2002 à 15:12:57   

Reply

Marsh Posté le 08-11-2002 à 15:18:18    

message d'erreur STP ?

Reply

Marsh Posté le 08-11-2002 à 15:21:34    

charlene a écrit a écrit :

message d'erreur STP ?




28
 parse error before `switch'
 
32  case label `"-"' does not reduce to an integer constant
 
32  confused by earlier errors, bailing out
 
voila


---------------
http://www.independza.com
Reply

Marsh Posté le 08-11-2002 à 15:21:58    

pour les case, tu devrais remplacer les " " par des ' '

Reply

Marsh Posté le 08-11-2002 à 15:23:02    

il manque pas un ; avant le switch ?
Y a une merde en totu cas


Message édité par charlene le 08-11-2002 à 15:23:52
Reply

Marsh Posté le 08-11-2002 à 15:32:10    

entre "" c une chaine de caractère ca marche pas avec les case qui demande un argument de type nombre entier dinc met entre '' qui correspond en fait au code ascii du caractere qui est donc un nombre entier

Reply

Marsh Posté le 08-11-2002 à 15:32:31    

charlene a écrit a écrit :

il manque pas un ; avant le switch ?
Y a une merde en totu cas




j'ai plus d'erreur mais mes boucles tournent a l"infini
#include <iostream>
#include <stdio.h>
int main()
{  
   int a,b,result;
   char op;
   //------------------------------------------------
   do
   {
   cout << "Entrez le premier nombre: ";
   cin >> a;
   }
   while (a<=0);
   //---------------------------------------------------
   do
   {
   cout << "Entrez le deuxième nombre: ";
   cin >> b;
   }
   while (b<=0);
   //---------------------------------------------------
   do{
   cout << "Entrer l'opération souhaiter :+,-,*";
   cin >> op;
   }
   while(op =='+',op =='-',op =='*';);
   //---------------------------------------------------
   switch (op) // selon op
   {
   case'+':result=a+b;
          break;
   case'-':result=a-b;
   break;
   case'*':result=a*b;
   default:cout << "erreur de saisie!";
   }
   cout << "le résultat est:"<< result ;
}


---------------
http://www.independza.com
Reply

Marsh Posté le 08-11-2002 à 15:55:14    

Bonjour,
 
les switch, cela marche uniquement pour les entiers (integer) et pour les caractères, donc lorsque le sélecteur est un caractère, on doit écrire pour traiter un cas :  
  case 'a' : xxxxx
"a" est considéré comme une chaîne et donc ne marche pas...
 
Sonia

Reply

Marsh Posté le 08-11-2002 à 15:59:14    

kason a écrit a écrit :

Bonjour,
 
les switch, cela marche uniquement pour les entiers (integer) et pour les caractères, donc lorsque le sélecteur est un caractère, on doit écrire pour traiter un cas :  
  case 'a' : xxxxx
"a" est considéré comme une chaîne et donc ne marche pas...
 
Sonia




j'ai pas tres bien compris
donc pr faire select case
il faut taper le ASCII de texte ?
et pourkoi est considéré comme une chaine


---------------
http://www.independza.com
Reply

Marsh Posté le 08-11-2002 à 16:00:51    

bol972 a écrit a écrit :

 
j'ai pas tres bien compris
donc pr faire select case
il faut taper le ASCII de texte ?
et pourkoi est considéré comme une chaine



quand tu rentres un truc entre double quote, c est considere comme une chaine, donc ca marche pas pour un switch
non, faut pas taper le ascii, si tu mets

Code :
  1. case 'a':...

c est OK

Reply

Marsh Posté le 08-11-2002 à 16:00:51   

Reply

Marsh Posté le 08-11-2002 à 16:06:41    

charlene a écrit a écrit :

quand tu rentres un truc entre double quote, c est considere comme une chaine, donc ca marche pas pour un switch
non, faut pas taper le ascii, si tu mets

Code :
  1. case 'a':...

c est OK




 
Pourkoi moi do while ne se stop , kd je lance le prog j'ai toujours la meme question meme si je mais une valeur supérieur a 0


---------------
http://www.independza.com
Reply

Marsh Posté le 08-11-2002 à 22:02:04    

do
{
  cout << "Entrer l'opération souhaiter :+,-,*";
  cin >> op;
}
while(op =='+',op =='-',op =='*';);
 
on en sort bien que quand op n'est NI '+', NI '-', NI '*' ?
   
do  
{  
  cout << "Entrez le premier nombre: ";  
  cin >> a;  
}  
while (a>=0);  
 
on en sort que quand a < 0 ?  
 
While veut dire qu'on fait le do 'tant que' la valeur de a est > 0 ou nulle.
 
 
Peut-être essayer  
do  
  {  
  cout << "Entrez le premier nombre: ";  
  cin >> a;  
  }  
  while (a < 0);  
  //---------------------------------------------------  
  do  
  {  
  cout << "Entrez le deuxième nombre: ";  
  cin >> b;  
  }  
  while (b < 0);  
  //---------------------------------------------------  
  do{  
  cout << "Entrez l'opération souhaitée :+,-,*";  
  cin >> op;  
  }  
  while(op !='+',op !='-',op !='*';)  
   

Reply

Marsh Posté le 08-11-2002 à 22:16:05    

c'est quoi ces virgules à la con?


---------------
du bon usage de rand [C] / [C++]
Reply

Marsh Posté le 08-11-2002 à 22:22:52    

Ca existe dans les for (,,;  ;  ) mais ici sais pas du tout si c'est valide ??
 
while((op != '+';) && (op != '-';) && (op != '*';))

Reply

Marsh Posté le 08-11-2002 à 22:23:44    

LE WHILE!!!!!!
Comment tu combines tes conditions toi! C'est des ET ou des OU?

Reply

Marsh Posté le 08-11-2002 à 22:27:59    

faut que je me quote ou quoi?


---------------
du bon usage de rand [C] / [C++]
Reply

Marsh Posté le 08-11-2002 à 22:36:35    

Et ou ou
quote quote quodete
 
Je vais :sleep:

Reply

Marsh Posté le 08-11-2002 à 22:40:09    

kwotaid  :pt1cable:


---------------
du bon usage de rand [C] / [C++]
Reply

Marsh Posté le 09-11-2002 à 04:21:33    

La même question ailleurs, avec un pseudo proche: http://www.developpez.net/forums/v [...] p?p=196132


Message édité par Musaran le 09-11-2002 à 04:22:39

---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
Reply

Marsh Posté le 09-11-2002 à 10:59:32    

Musaran a écrit a écrit :

La même question ailleurs, avec un pseudo proche: http://www.developpez.net/forums/v [...] p?p=196132




c moi tt simplement


---------------
http://www.independza.com
Reply

Marsh Posté le 09-11-2002 à 11:08:34    

Ca finit par se solutionner ?

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed