IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

si, sinon si, etc !


Sujet :

C

  1. #1
    Invité
    Invité(e)
    Par défaut si, sinon si, etc !
    Je code un programme qui me saute des passage des mes if else if, soit il va directement à la fin soit il me donne le résultat d'un seule valeur sans de demander la deuxième valeur...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    #include<stdio.h>
    int main (){
    int val1;
    int val2;
    printf("entrer une valeur1\n");
    scanf("%d", &val1);
     
    if((val1 < 5)){
        printf("%d : ma valeur est petite\n");
    }else if((val1 >5)){
        printf("%d : ma valeur est grande\n");
     
    printf("entrer une valeur2\n");
    scanf("%d", &val2);
     
    }else if((val2 < 5)){
        printf("%d : ma valeur est petite\n");
    }else{((val2 >5));
        printf("%d : ma valeur est grande\n");
    }
    return 0;
    }

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 282
    Par défaut
    Bonsoir

    Ton code ne correspond pas à l'indentation. Ne pas oublier que le compilo ne considère pas l'indentation, c'est juste pour faciliter la lecture du code par l'humain. Alors quand cela ne correspond pas, on a vite mal lu le programme.

    Ton code l'indentation qui correspond:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    #include<stdio.h>
    int main (){
    int val1;
    int val2;
    printf("entrer une valeur1\n");
    scanf("%d", &val1);
     
    if((val1 < 5)){
        printf("%d : ma valeur est petite\n");
    }else if((val1 >5)){
        printf("%d : ma valeur est grande\n");
     
        printf("entrer une valeur2\n");
        scanf("%d", &val2);
     
    }else if((val2 < 5)){
        printf("%d : ma valeur est petite\n");
    }else{((val2 >5));
        printf("%d : ma valeur est grande\n");
    }
    return 0;
    }
    Maintenant le code qui correspond à l'indentation originale:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    #include<stdio.h>
    int main (){
    int val1;
    int val2;
    printf("entrer une valeur1\n");
    scanf("%d", &val1);
     
    if((val1 < 5)){
        printf("%d : ma valeur est petite\n");
    }else if((val1 >5)){
        printf("%d : ma valeur est grande\n");
    }
    printf("entrer une valeur2\n");
    scanf("%d", &val2);
     
    if((val2 < 5)){
        printf("%d : ma valeur est petite\n");
    }else{((val2 >5));
        printf("%d : ma valeur est grande\n");
    }
    return 0;
    }
    Et éventuellement ce que tu souhaites si ma boule de cristal n'est pas trop cassée, avec un code et une indentation légèrement différents
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    #include<stdio.h>
    int main (){
    int val1;
    int val2;
    printf("entrer une valeur1\n");
    scanf("%d", &val1);
     
    if((val1 < 5)){
        printf("%d : ma valeur est petite\n");
    }else if((val1 >5)){
        printf("%d : ma valeur est grande\n");
     
        printf("entrer une valeur2\n");
        scanf("%d", &val2);
     
        if((val2 < 5)){
            printf("%d : ma valeur est petite\n");
        }else{((val2 >5));
            printf("%d : ma valeur est grande\n");
        }
    }
    return 0;
    }
    Je te laisse chercher et méditer sur les différences entre ces trois codes.

    Delias

  3. #3
    Invité
    Invité(e)
    Par défaut
    c'est à dire que je dois toujours respecter ceci; if, else if, else if...else pour la fin ?

    Merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    ou alors si ce n'est pas le cas faire attention aux accolades, comme dans mon exercice que tu as résolu..

  5. #5
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    il n'y a pas de "else if"
    Il y a else, et if.

    la structure conditionnelle est: if ( condition ) une-seule-instruction ou if ( condition ) une-seule-instruction else une-seule-instruction.
    Dans les deux cas, condition est une expression booléenne.

    Les accolades permettent d'utiliser un bloc d'instructions comme si c'était une seule.

    quand tu écris if (bidule) {...} else if (bidule2) {} else if (bidule3)..., chaque if est utilisé comme instruction d'un else.

    L'indentation normale serait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if (bidule) {
        ...
    }
    else
        if (bidule 2) {
            ...
        }
        else
            if (bidule3)
                ....
    Et avec toutes les accolades
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    if (bidule) {
        ...
    }
    else {
        if (bidule 2) {
            ...
        }
        else {
            if (bidule3) {
                ....
            }
        }
    }

  6. #6
    Invité
    Invité(e)
    Par défaut
    Merci

    Ternel je t'aime tellement t'es sérieuse
    Dernière modification par LittleWhite ; 22/08/2017 à 19h38.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD18] problème avec si sinon etc
    Par phoenix916916 dans le forum WinDev
    Réponses: 3
    Dernier message: 02/04/2015, 23h01
  2. comment écrire au mieux SI /SINON/SINON SI etc
    Par chapeau_melon dans le forum WinDev
    Réponses: 8
    Dernier message: 22/11/2007, 20h14
  3. Documentation gratuite sur l'API Windows, COM, DCOM, OLE, etc.
    Par Community Management dans le forum Windows
    Réponses: 1
    Dernier message: 16/11/2006, 15h28
  4. [Choix] SGDB pour Entreprise : coût, efficacité, etc.
    Par grassat dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 15/06/2002, 08h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo