Structure conditionnel

scharly3 Messages postés 88 Date d'inscription mardi 1 juillet 2003 Statut Membre Dernière intervention 9 juillet 2009 - 13 août 2006 à 16:06
Ilsundal Messages postés 79 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 1 mars 2011 - 3 déc. 2006 à 12:05
Voici mon code :

f (i = 1 );
                printf("\n Question1");
                printf("\n \n Quelles est la bande passante de l'usb 2.0 en hight speed ?(Mb.s) \n");
                cin>> que ;
              
                if (que = 480);
                 printf("Bravo");
                                 
                if (que != 480) ;
                    printf("Faux , la reponse est 480 Mb.S");

Voici mon probléme ,  peut importe la valeur de ma variable que , j'ai bravo et Faux d'affiché en meme temps :s
Expliquation ?

15 réponses

scharly3 Messages postés 88 Date d'inscription mardi 1 juillet 2003 Statut Membre Dernière intervention 9 juillet 2009
13 août 2006 à 16:11
en fait voici le programme complet défois que ca vous aide a comprendre :

main ()
{
     char fin ;
     int i ;
     int que;
     printf("bienvenu dans mon premier programme en c++");
     printf("\n Celui-ci a pour objet un test de connaissance sur l'innformatique");
     printf("\n 1- Commencer le test :");
     printf("\n 2- Quitter\n");
     printf("\n Votre Choix :   ");
     cin >> i;
    
     if (i = 1 );
                printf("\n Question1");
                printf("\n \n Quelles est la bande passante de l'usb 2.0 en hight speed ?(Mb.s) \n");
                cin>> que ;
              
                if (que = 480);
                 printf("Bravo");
                                 
                if (que != 480) ;
                    printf("Faux , la reponse est 480 Mb.S");
                  
     cin >>fin ;
     if (i = 2) ;
     printf("exit");
     }

je pense que cela doit venir du fait , que j'ai plusieur IF à la suite , mais je ne comprend pas bien comment en C++ on fait pour déclaré qu'un If est fini , en VB je met mon END IF , en C++ ... :s
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
13 août 2006 à 16:42
if (i = 2)

i = 2, c'est une affectation, donc tu ne passeras jamais dans la condition :)
l'opérateur de comparaison c'est le double égal : ==

ULARGE_INTEGERJokyQi=QI("Joky"
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
13 août 2006 à 16:43
if (i = 1 );

Trois fautes:
-Cette condition vaut 1 et est toujours vraie: l'opératur d'égalité est ==, l'affectation est =
-le ; est en trop, c'est comme si le if n'était pas présent.
-il faut des accolades si le if contient plusieurs instructions (le compilo se moque de l'indentation du code)

Il faut donc écrire:
if(i == 1)
{
   instruction
}

_____________________________________
Un éditeur de ressources gratuit pour Windows
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
13 août 2006 à 16:43
comparaison c'est '==' et non '=' qui est affectation.


if(que == 480) printf("Bravo");
else printf("Faux , la reponse est 480 Mb.S");

ciao...
BruNews, MVP VC++
0

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

Posez votre question
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
13 août 2006 à 16:44
Je crois qu'on est d'accord :)

_____________________________________
Un éditeur de ressources gratuit pour Windows
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
13 août 2006 à 16:47
Non sauf moi qui dit que le retour d'une affectation c'est 0 :(
Mais bon je sais pas :p

ULARGE_INTEGERJokyQi=QI("Joky"
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
13 août 2006 à 16:49
L'expression truc = bidule vaut bidule
C'est pour ca qu'on peut écriremachin truc bidule;ca veut dire machin (truc bidule), donc machin = bidule

_____________________________________
Un éditeur de ressources gratuit pour Windows
0
scharly3 Messages postés 88 Date d'inscription mardi 1 juillet 2003 Statut Membre Dernière intervention 9 juillet 2009
13 août 2006 à 17:10
HAAA voici donc le point que je ne conaissait pas , en c++ on à 2 types différent d'écriture pour if (variable = ...) et if (variable == ...)
Ok merci
0
scharly3 Messages postés 88 Date d'inscription mardi 1 juillet 2003 Statut Membre Dernière intervention 9 juillet 2009
13 août 2006 à 17:22
J'ai refait mon truck , est j'ai un probléme , Comment doit - je mettre else pour qu'il me le prenne ?

main ()
{
     char fin ;
     int i ;
     int que;
     int loul;
     printf("bienvenu dans mon premier programme en c++");
     printf("\n Celui-ci a pour objet un test de connaissance sur l'innformatique");
     printf("\n 1- Commencer le test :");
     printf("\n 2- Quitter\n");
     printf("\n Votre Choix :   ");
     cin >> i;
     switch (i)
     {
            case 1:
                 printf ("\n Question1");
                 printf ("\n \n Quelles est la bande passante de l'usb 2.0 en hight speed ?(Mb.s) \n");
              cin >> que ;
                 if (que == 480);
               
                         printf("Bravo");
                 else
                         printf("Faux , la réponse est 480");
                 cin >> loul;
                       
            break;
            case 2:
                 printf("qui");
                
     }
}
 

Parceque la erreur de compilation ...
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
13 août 2006 à 17:37
if (que == 480);
Comme je t'ai dit, pas de ';' ici

Et une vitesse est plutot en Mb/s qu'en Mb.s

_____________________________________
Un éditeur de ressources gratuit pour Windows
0
scharly3 Messages postés 88 Date d'inscription mardi 1 juillet 2003 Statut Membre Dernière intervention 9 juillet 2009
13 août 2006 à 17:39
lol je c pour la vitesse mais disons que j'en suis pas encore a savoir mettre / alors g simpliffié :)
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
13 août 2006 à 17:42
Rien de spécial à faire pourtant (ah si appuyer sur la touche maj en même temps)

_____________________________________
Un éditeur de ressources gratuit pour Windows
0
scharly3 Messages postés 88 Date d'inscription mardi 1 juillet 2003 Statut Membre Dernière intervention 9 juillet 2009
13 août 2006 à 17:46
Arf , je pensé que ct comme le "é" ou autre qui ne sont pas prix directement.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
13 août 2006 à 17:54
Les croyances doivent s'arrêter aux portes de la chapelle, en prog on teste et ainsi on est certain.

ciao...
BruNews, MVP VC++
0
Ilsundal Messages postés 79 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 1 mars 2011
3 déc. 2006 à 12:05
quand tu as plusieurs actions dans les conditions tu es obligé de mettre les {}. voila ton code et il y a pas de ; (point virgule) dans le IF :

#include
#include <stdio.h>
using namespace std;

main ()
{
     char fin;
     int i, que, loul;
     printf("bienvenu dans mon premier programme en c++");
     printf("\n Celui-ci a pour objet un test de connaissance sur l'innformatique");
     printf("\n 1- Commencer le test :");
     printf("\n 2- Quitter\n");
     printf("\n Votre Choix :   ");
     cin >> i;
     switch (i)
     {
            case 1:
                 printf ("\n Question1");
                 printf ("\n \n Quelles est la bande passante de l'usb 2.0 en hight speed ?(Mb.s) \n");
              cin >> que ;
                 if (que == 480){
              
                         printf("Bravo");
                         cout<<endl; //saut de ligne
                        system("PAUSE");
                 }else{
                         printf("Faux , la réponse est 480");
                         cout<<endl; //saut de ligne
                        system("PAUSE");}
                      
            break;
            case 2:
                 printf("qui");
                 return 0; // Quitte le programme
               
     }
    
}

Ma Quete n'est pas Terminee
0
Rejoignez-nous