Structure conditionnel

Signaler
Messages postés
88
Date d'inscription
mardi 1 juillet 2003
Statut
Membre
Dernière intervention
9 juillet 2009
-
Messages postés
79
Date d'inscription
lundi 23 décembre 2002
Statut
Membre
Dernière intervention
1 mars 2011
-
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

Messages postés
88
Date d'inscription
mardi 1 juillet 2003
Statut
Membre
Dernière intervention
9 juillet 2009

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
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
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"
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
22 août 2010
10
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
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
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++
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
22 août 2010
10
Je crois qu'on est d'accord :)

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

ULARGE_INTEGERJokyQi=QI("Joky"
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
22 août 2010
10
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
Messages postés
88
Date d'inscription
mardi 1 juillet 2003
Statut
Membre
Dernière intervention
9 juillet 2009

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
Messages postés
88
Date d'inscription
mardi 1 juillet 2003
Statut
Membre
Dernière intervention
9 juillet 2009

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 ...
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
22 août 2010
10
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
Messages postés
88
Date d'inscription
mardi 1 juillet 2003
Statut
Membre
Dernière intervention
9 juillet 2009

lol je c pour la vitesse mais disons que j'en suis pas encore a savoir mettre / alors g simpliffié :)
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
22 août 2010
10
Rien de spécial à faire pourtant (ah si appuyer sur la touche maj en même temps)

_____________________________________
Un éditeur de ressources gratuit pour Windows
Messages postés
88
Date d'inscription
mardi 1 juillet 2003
Statut
Membre
Dernière intervention
9 juillet 2009

Arf , je pensé que ct comme le "é" ou autre qui ne sont pas prix directement.
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
Les croyances doivent s'arrêter aux portes de la chapelle, en prog on teste et ainsi on est certain.

ciao...
BruNews, MVP VC++
Messages postés
79
Date d'inscription
lundi 23 décembre 2002
Statut
Membre
Dernière intervention
1 mars 2011

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