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 :

Attribuer une valeur à une variable dans les instructions de if [Débutant(e)]


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 9
    Par défaut Attribuer une valeur à une variable dans les instructions de if
    Bonjour,

    Je suis vraiment débutant et je sais que ma question peut paraître très bête.
    J'apprend à faire des petits programmes tout simples et j'ai une petite question sur "if" :

    J'ai créé un menu ou le joueur a le choix entre "1.continuer la partie" et "2. s'arreter"
    J'ai déclaré une variable "choixJoueur" et je voudrais attribuer la valeur 1 à cette variable si le joueur tape 1 et lui attribuer la valeur 0 s'il tape 2 (pour ensuite utiliser une variable booléenne).
    Mais je ne sais pas faire ça avec if. Car pour l'instant je ne sais que donner une instruction du type "Printf" si une condition est vérifiée.

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Montre un code car je ne vois pas trop ton problème sans un exemple sous les yeux.
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 9
    Par défaut
    Voilà mon code (c'est le jeux "Plus ou moins", que j'ai fait d'après les tutoriels C du site ) :

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
     
    int main (int argc, const char * argv[]) {
     
        do {
    	const long MAX = 100, MIN = 1;
    	long nombreEntre = 0, nombreMystere = 0, nombreCoups = 1, choixJoueur = 0;
    	int continuerPartie = 1;
     
    	srand(time(NULL));
    	nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
     
    	do
    	{
    	printf("Quel est le nombre ?");
    	scanf("%ld", &nombreEntre);
     
    	if(nombreMystere > nombreEntre)
    		printf("C'est plus !\n\n");
    	else if(nombreMystere < nombreEntre)
    		printf("C'est moins !\n\n");
    	else
    	 {
    	printf("Bravo, vous avez trouve le nombre mystere en %ld coups!!!\n", nombreCoups);
    	printf("Voulez-vous faire une nouvelle partie ?\n");
    	printf("1. Oui\n");
    	printf("2. Non\n");
    	scanf("%ld", &choixjoueur);
    	 }
     
    	 If (choixJoueur == 1)
    		(continuerPartie = 1);
    	 else if (choixJoueur == 2)
    		(continuerPartie = 0)
    	else
     
    		nombreCoups++;
    	 }while (continuerPartie);
    	return 0;
    }
    Il est incomplet car j'ai bloqué sur ce fameux if. Je me rend bien compte que le dernières conditions au bas de mon code ne sont pas correctes. C'est l'objet de ma question.

    PS : c'est un truc tellement basique que la réponse est difficile à trouver sur les forum C !

  4. #4
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if (choixJoueur == 1)
       continuerPartie = 1;
    else if (choixJoueur == 2)
       continuerPartie = 0;
    else
       nombreCoups++;
    Attention à certaines choses:
    • Ton if avais le i en majuscule alors qu'il doit être en minuscule, ca le compilateur aurait dû te le dire lors de la compilation si tu en as déjà effectué une !
    • On ne met pas de parenthèses pour ajouter une instruction dans le corps d'une condition if, soit tu fait comme montré ci-dessus soit tu met des accolades comme par exemple:
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      if (choixJoueur == 1)
      {
         continuerPartie = 1;
      }
      else
      ...
    • Dans ton dernier else, tu avais un espace (une ligne vide) avant de son instruction et là le compilateur risque de ne pas tenir compte de ton instruction comme faisant partie du corps du else. Il faut savoir que si tu ne met pas d'accolades, il faut que l'instruction suive directement en-dessous ou sinon, tu mets des accolades comme montré plus haut et là tu peux même mettre autant d'instructions que tu le souhaites


    Si maintenant tu ne comprend pas quelque chose ou si je n'ai pas répondu à ta question, montre moi ce que tu souhaite faire.
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 9
    Par défaut
    Merci beaucoup !

    Ca répond en effet à ma question. Il suffisait d'enlver les parenthèse pour attribuer un valeur dans if.
    Pour ce qui est de else, l'instruction qui suivait n'était pas lié à cette condition.

    J'ai modifié le programme. J'ai encore d'autres soucis, mais je vais essayer de me débrouiller. Si j'ai d'autres problèmes je reviendrais.

    Encore merci

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. Réponses: 2
    Dernier message: 19/02/2013, 11h01
  3. Réponses: 1
    Dernier message: 11/03/2010, 14h47
  4. Réponses: 2
    Dernier message: 18/06/2009, 15h09
  5. Réponses: 7
    Dernier message: 28/10/2008, 10h54

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