Bonjour et bienvenue. Dans cette conférence, je veux parler de la
prise de décision, en particulier des déclarations.
Ainsi, le langage de programmation c fournit
une capacité de prise de décision générale sous la forme d'une instruction if.
Nous savons quelles déclarations sont à ce point.
Alors maintenant, nous allons simplement ajouter un mot-clé devant lui et le mettre également entre parenthèses.
Donc, à quoi ça ressemble, c'est quelque chose comme ça.
Si le mot-clé, puis entre les parenthèses gauche et droite, vous avez
quelque chose appelé une expression.
Nous savons ce que sont les expressions et la différence entre les déclarations.
Cette expression doit être évaluée comme vraie ou fausse.
Et puis vous avez une déclaration de programme.
Et c'est donc le type de déclaration if le plus simple.
Donc, si vous dites expression et ensuite la déclaration du programme,
vous pouvez en fait remplacer cela par un
pseudocode quelque chose comme s'il ne pleut pas, alors j'irai nager.
Et si vous traduisez ce pseudocode en c, le pseudocode n'est pas
une vraie syntaxe,
c'est une façon de décrire quelque chose dans le code en anglais.
Et donc si nous disons une
instruction if en c, tout ce que vous feriez est de mettre la condition entre parenthèses, il ne pleut pas.
Et puis après l'instruction if, soit une
seule instruction, soit plusieurs instructions.
Si vous avez plusieurs instructions, vous les mettez entre accolades.
Mais dans ce
cas, nous avons une déclaration. Donc, à l'intérieur du corps, la déclaration if est que j'irai nager.
Il ne doit donc pas pleuvoir pour pouvoir exécuter je vais nager.
C'est pourquoi c'est dans le flux de contrôle. Vous n'exécutez pas toujours que j'irai nager.
Cela dépend de la condition et si elle est vraie ou fausse.
Vous risquez donc de sauter du code dans ce cas. Vous n'avez donc pas de processus séquentiel.
Ainsi, l'instruction if est utilisée pour stipuler l'exécution
d'une instruction de programme basée sur une condition spécifiée, une capacité
de prise de décision. Vous n'allez donc nager que s'il ne pleut pas.
Vous n'allez exécuter le code dans le corps de l'instruction if que s'il ne pleut pas.
Les accolades sont requises pour les instructions composées à l'intérieur du bloc if.
Donc par exemple, si on vous disait s'il ne pleut pas, j'irai nager ou
avant d'aller nager, vous enfilerez votre maillot de bain, vous
vous habillerez et vous irez nager.
Ensuite, vous devrez y mettre ces accolades.
Et encore une fois, nous aurons des exemples spécifiques pour le montrer.
Mais les accolades ne sont pas obligatoires si vous n'avez qu'une seule instruction, elles sont facultatives.
Vous pouvez les fournir ou non.
Je fournis généralement les accolades dans toutes mes instructions if juste pour la cohérence.
Voici un exemple d'instruction if courante dans le langage de programmation c.
Dans ce cas, nous déclarons deux variables, une nommée score et une nommée big.
Le score est de 95, jusqu'à 90.
Ici, nous avons juste une simple déclaration dans le corps
et elle n'a pas de crochets. Et fondamentalement, nous disons que si le score est supérieur à
grand, le score est de 95. Donc, si 95 est
supérieur à 90, c'est une expression booléenne. Il va s'évaluer vrai dans ce cas.
Donc, ce qui sera affiché à l'écran est le jackpot.
Et puis nous avons le même exemple sauf que nous utilisons
les accolades car nous avons plus d'une instruction dans le corps de l'instruction if.
Ainsi, dans l'exemple du bas, si le score est supérieur
à grand, nous avons une accolade gauche pour commencer le bloc de l'instruction if, et
nous avons une accolade de fin pour terminer le bloc de l'instruction if.
Cela fait référence au corps de l'instruction if.
Et donc dans ce cas, nous avons deux déclarations. Nous allons d'abord augmenter le score de 1,
puis nous allons afficher votre victoire.
Notez donc la différence ici, entre crochets et non-crochets.
Vous pouvez toujours mettre les crochets dans une seule instruction, ils sont facultatifs.
Mais si vous avez plusieurs instructions, les crochets sont obligatoires.
Le crochet gauche signifie le début du
bloc, le crochet droit signifie la fin du bloc.
Les instructions If sont assez simples lorsqu'elles ne sont qu'un seul ascenseur
Si le mot clé est entre parenthèses à gauche et à droite, à l'intérieur des parenthèses dans une expression.
Et lorsque les instructions deviennent plus compliquées, ces expressions peuvent devenir plusieurs expressions.
Vous pouvez donc commencer à utiliser certains des opérateurs logiques que
nous avons appris en termes de possibilité d'utiliser le et ou le ou.
Donc, si le score est supérieur à grand et que quelque chose
d'autre est nécessaire.
Nous pouvons donc avoir plusieurs questions dans une seule déclaration if ou nous pouvons les décomposer.
Mais c'est un exemple d'instruction if basique, encore
une fois syntaxe assez basique, vous ne
voyez aucun point-virgule à la fin de l'instruction
if, le seul à la fin de printfs.
Vous n'avez donc que les parenthèses de fin et de début.
Vous pouvez maintenant également ajouter une clause else à votre instruction if.
Ceci est soutenu par c. Vous pouvez donc l'étendre un
peu avec un petit ajout qui vous permet d'avoir beaucoup plus de flexibilité.
Donc par exemple, si nous devions dire si la pluie d'aujourd'hui est
pire que la
pluie d'hier, je prendrai mon parapluie. Sinon, s'il ne pleut pas
aussi fort qu'hier, je vais prendre ma veste.
Donc, l'autre est de dire ce qui se passe lorsque la
question à la réponse est fausse.
Alors sinon, je prendrai ma veste, puis j'irai travailler.
C'est donc exactement le genre de prise de décision que fournit la déclaration if else.
Faites quelque chose quand c'est vrai, faites aussi quelque chose quand c'est faux.
Vous avez donc le mot-clé if, puis, entre parenthèses, vous avez votre expression booléenne, quelque chose qui
donne la valeur true ou false.
Ensuite, vous avez votre instruction qui est exécutée la première instruction si elle est vraie.
Sinon, vous utilisez le mot-clé else.
C'est facultatif, vous n'avez pas toujours besoin de fournir l'autre. Seulement si vous voulez faire quelque
chose si l'expression booléenne est fausse, vous dites instruction deux.
Et encore une fois dans ce cas, nous n'avons pas de
crochets dans le corps du bloc if ou du bloc else
car nous n'avons que des instructions uniques.
Si nous avons plus d'une instruction dans l'un ou l'autre de ces corps,
nous devons fournir une parenthèse pour le début et la fin.
Voici donc un exemple d'instruction else avec un if.
Dans ce cas, nous allons déterminer si un nombre est pair ou impair.
Nous avons donc notre fonction principale, c'est là que nous entrons.
Et nous créons un couple de variables, l'une s'appelle nombre à tester, l'autre s'appelle reste.
Ils sont tous les deux de type int.
Nous les déclarons sur la même ligne en les séparant par des virgules.
Nous ne les avons pas encore initialisés.
Sur la ligne de code suivante, nous allons imprimer une sortie pour demander à l'utilisateur de saisir des informations.
Nous utilisons ensuite la fonction scanf.
Nous lisons un entier pour pouvoir faire le pourcentage i ou le pourcentage d.
Et nous ne lisons pas une chaîne ou des mots.
Nous allons donc placer l'esperluette devant la variable où nous allons stocker les données.
Ainsi, l'utilisateur va entrer quelque chose de numéro à tester.
Et puis nous allons également obtenir le reste de tout ce qu'ils ont entré par 2 parce que
cela nous
dira si quelque chose est pair ou impair. Si vous pouvez diviser un nombre
par 2 et que le reste est égal à 0, cela
signifie que c'est un nombre pair. Sinon, c'est bizarre.
La partie importante de ce programme est le bas où nous utilisons la condition.
Jusqu'à ce point, chaque ligne a été exécutée.
Mais lorsque nous avons une instruction if et une condition entre parenthèses, si
le reste est égal à zéro
et que vous remarquerez que vous devez toujours utiliser l'égal est égal pour la
comparaison, vous n'utilisez pas égal. Rappelez-vous, égal est pour l'affectation,
l'affectation de données à une valeur. Equals equals sert à comparer des nombres.
Nous comparons une variable de reste à zéro.
Et si c'est zéro, nous allons même imprimer.
Sinon, le mot-clé else est sur la ligne suivante, nous allons imprimer impaire.
Vous remarquerez qu'il n'y a pas de crochets dans le if ou le else car il n'y a qu'une seule instruction.
Exécutons ceci et voyons comment cela fonctionne dans les blocs de code.
Eh bien, voici notre programme. Il est décrit, comme je viens de le mentionner, exactement de la même manière.
Nous allons simplement imprimer des paires ou des impairs. Alors allons-y et construisons ça.
Et nous voulons nous assurer que nous n'avons aucune erreur.
Vous avez ici quelques sauts de ligne supplémentaires.
Maintenant, lorsque nous exécutons ce programme, nous allons simplement pouvoir avoir une
sortie pour pair ou impair.
Il va nous demander le nombre à tester. Je vais entrer 33, ce qui est étrange.
Ça va dire que le nombre est impair. C'est donc un programme assez simple.
L'important ici est que vous n'exécutez pas certains codes.
Vous allez soit exécuter la ligne 19, si le reste est égal à 0.
Si ce n'est pas le cas, vous allez en fait à la ligne 21. Et les crochets sont à nouveau facultatifs.
Vous pouvez les mettre
là-dedans et l'EDI effectuera une complétion automatique pour vous, ce qui
est plutôt bien.
Mais encore une fois, j'aime généralement les ajouter car ils sont faciles et
cela rend le code encore plus lisible.
Cela dépend de votre style de mise en forme.
Certaines personnes aiment avoir le crochet au début de l'instruction else, comme ceci.
Certains aiment l'avoir sur l'autre ligne, cela dépend de votre format.
Et en fait, cela peut être fait pour vous automatiquement dans l'EDI en formatant le code.
Mais cela fonctionne de la même manière, et c'est presque encore plus facile à lire.
Et si jamais vous devez ajouter plus d'instructions, vous
les ajoutez facilement et vous n'avez pas à vous soucier d'ajouter les crochets.
J'ai donc pris l'habitude d'ajouter des parenthèses.
Encore une fois, l'autre chose importante ici est que cela est égal.
Vous ne pouvez pas faire d'égal. Si vous faites égal et exécutez le programme, vous verrez
qu'il y a une grande différence. Donc une déclaration
if else très simple, très, très utile. Vous n'allez exécuter la ligne 19 que si le reste est impair.
Sinon, vous allez exécuter la ligne 22.
Parlons un peu plus d'une instruction else if.
Vous pouvez donc également en avoir un autre. Si c'est le cas, nous avons appris si, nous avons appris autre chose.
Vous pouvez gérer une prise de décision complexe supplémentaire en ajoutant une instruction if à votre clause else.
C'est donc comme poser une question supplémentaire.
Vous n'allez pas réellement exécuter quelque chose si la condition dans l'original est fausse, vous
allez poser une autre question.
Donc, vous dites que si l'expression 1,
vous avez du code qui va s'exécuter si c'est vrai.
Sinon, sinon, vous
dites si après c'est
parfaitement légal. Il s'agit d'une instruction if à l'intérieur d'une instruction else.
Ensuite, vous exécutez le programme deux. Sinon, vous exécutez autre chose.
Cela étend donc l'instruction if d'une décision logique à deux valeurs à une
décision logique à trois valeurs.
Ici, vous posez deux questions.
Et si la question de la première réponse est vraie, vous
exécutez la première instruction du programme.
Ensuite, vous posez votre deuxième question, uniquement si la première question était vraie ou
si la première question était fausse.
Et si c'est vrai, alors vous exécutez en fait un autre code.
Vous avez donc ici essentiellement trois
branches, trois lignes de code distinctes qui peuvent être exécutées ou non.
Instruction de programme 1, instruction de programme 2 ou instruction de programme 3.
Vous pouvez réécrire ce code pour utiliser un else if.
Pour le moment, le if est sur la ligne séparée, mais vous pouvez en fait faire quelque chose comme
ça, si l'expression one fait autre chose si.
Vous n'êtes pas obligé de le mettre sur une ligne distincte. Cela peut être une seule ligne,
puis vous pouvez en avoir une autre en dehors de cela.
La seule chose délicate à ce sujet est que la clause else va être exécutée.
Et c'est la même chose. Donc, cette clause else va être exécutée
pour les trois.
C'est donc un peu déroutant dans
le premier exemple car il semble que le
second else n'est exécuté que si l'autre if
est faux.
Mais elle est vraiment exécutée si la première expression est également fausse.
Si vous aviez des crochets, vous auriez pu imbriquer ces instructions if.
Et l'extérieur, le dernier autre ne s'exécuterait qu'en fonction
de la question du second si réponse.
Nous aborderons l'imbrication lorsque nous parlerons d'instructions if imbriquées et de boucles imbriquées.
Les instructions if imbriquées mettent simplement un côté if et if, et vous
devez faire attention à l'emplacement de votre
clause else car la clause else doit correspondre à la dernière instruction if.
Voici un autre exemple où nous allons réellement essayer d'implémenter la fonction de signe.
Nous allons retourner soit 1 0 ou 1.
Il s'agit donc ici d'une évaluation à trois niveaux.
Ce que fait ce programme dans la routine principale, c'est
que nous créons quelques variables de type int, nombre et signe.
Nous demandons à l'utilisateur de saisir un nombre et nous le stockons dans la variable numérique.
Et si le nombre est inférieur à 0, le signe sera égal à moins 1.
Sinon, si le nombre est égal à 0, il sera égal à 0.
Sinon, si les deux sont faux, son signe sera égal à 1, ce qui signifie qu'il est positif.
Voici donc un exemple de la façon dont le else if peut être très utile.
Et vous pouvez avoir plusieurs autres ifs. Nous n'en voyons qu'un là-bas, mais nous pourrions en avoir 100 si nous le voulions.
Sinon si nombre est égal à 2, sinon si nombre est égal à 3, sinon si nombre est égal à 4.
Et vous pouvez également voir que les crochets ne sont pas
utilisés ici, mais les crochets seront utilisés si vous aviez plusieurs instructions dans le corps.
Et lorsque vous utilisez des instructions if,
vous devez également remarquer que vous allez utiliser de
nombreux opérateurs logiques, opérateurs de comparaison et opérateurs relationnels.
Vous utilisez donc ici le symbole "moins que". Les opérateurs logiques, rappelez-vous,
sont les esperluettes. Deux d'entre eux pour et
ou, et les opérateurs relationnels sont l'endroit où vous comparez les valeurs.
Donc, lorsque vous faites des choses comme moins ou moins égales ou supérieures à.
Ceux-ci sont souvent utilisés lorsque vous utilisez des nombres dans vos expressions d'instruction if.
Lorsque vous utilisez l'esperluette et esperluette, vous posez en fait plusieurs questions.
Si c'est vrai et c'est vrai ou si c'est vrai ou.
C'est aussi un moyen de réduire les autres déclarations if.
Vous pouvez donc réécrire ce code ici même si le nombre est inférieur à 0.
Et aussi, si vous vouliez avoir le
signe, vous ne pourriez pas réellement tel qu'il est maintenant.
Mais si vous pouviez mettre une esperluette et une esperluette là-dedans et que vous pouviez
dire si le nombre est inférieur à 0 et égal à 0,
alors le signe est négatif 1 et 0. Je veux dire que vous ne pouvez pas faire cela
spécifiquement, mais vous pouvez voir comment vous pouvez ajouter plusieurs questions ici.
Nous allons donc avoir un défi spécifique où nous allons écrire un programme qui utilise des instructions if.
Ce sont de bons exemples. Vous voudrez mettre ces exemples dans votre IDE et voir ce qui se passe.
Mais l'autre si est encore une façon de poser plusieurs questions.
Instruction if else imbriquée.
Les instructions if l imbriquées signifient que vous pouvez utiliser une instruction if ou else
if dans une autre instruction if ou else if.
C'est pourquoi on parle de nidification.
Vous pouvez utiliser plusieurs choses à l'intérieur et vous pouvez continuer à le faire encore et encore.
Il n'y a pas de limite au nombre d'imbrication que vous n'avez pas vu.
La syntaxe ressemble donc à ceci.
Si une expression booléenne est égale à true, alors
à l'intérieur de celle-ci et lorsque vous effectuez une imbrication, vous souhaitez généralement utiliser les crochets.
Même si vous n'avez pas à le faire pour des instructions uniques, car cela le rend beaucoup plus lisible.
Donc, si l'expression booléenne 1 est vraie, alors
à l'intérieur, vous dites si l'expression booléenne 2 est vraie.
Vous n'exécuteriez pas réellement si l'expression booléenne 2 à moins que
l'expression booléenne 1 ne soit vraie.
Et puis à l'intérieur du corps de l'expression booléenne 2, vous exécuteriez du code si c'est vrai.
Donc, un exemple d'instruction if imbriquée ressemblerait à ceci.
Si le jeu est plus égal à 0, puis à l'intérieur si le joueur à déplacer est égal à vous, alors vous
avez une empreinte.
La clé ici remarquant qu'il n'y a pas de parenthèses,
et c'est un peu plus difficile à suivre. La seule façon de suivre cela est de mettre en retrait
ce qui est une autre chose que vous voulez faire lorsque vous écrivez des instructions if dans des blocs de code.
Vous voulez toujours indenter le bloc car il le rend plus facile à lire.
Imaginez si cela n'avait pas d'indentation, à
quel point il serait plus difficile de faire correspondre le else et le ifs.
Utilisez donc l'indentation, mais utilisez probablement aussi des crochets, les crochets aident à le rendre encore plus lisible.
Et n'oubliez pas que la lisibilité est un gros problème car la lisibilité vous aide à trouver et à corriger vos erreurs beaucoup plus rapidement.
Donc, dans ce cas, nous n'exécuterons votre coup imprimé à l'écran que si
le joueur à déplacer est égal à u et si la partie terminée est égale à 0.
Nous n'allons exécuter mon coup affiché à l'écran que si le
jeu est égal à 0 mais que le joueur à déplacer n'est pas égal à u.
Et puis enfin, nous n'allons exécuter le jeu terminé que
si le jeu n'est pas égal à 0.
Nous avons donc ici trois conditions
pour imprimer trois déclarations différentes.
Et vous pourriez en fait écrire si le jeu est
plus égal à 0 et esperluette et esperluette, le joueur à déplacer est égal à u.
Mais le problème avec cela serait votre sinon mon mouvement pourrait ne pas être
correct parce que vous devez toujours comparer le joueur pour bouger.
Donc, il y a des moments où vous pouvez utiliser les esperluettes pour simplifier le code, il
y a des moments où vous ne pouvez pas. Dans ce cas, vous ne pouvez pas
car le premier else est à l'intérieur du if imbriqué.
L'imbrication est donc tout à fait applicable, et vous l'utiliserez,
alors familiarisez-vous avec elle. Encore une fois, la syntaxe de l'instruction if est très simple.
Expression booléenne à l'intérieur, puis utilisez des crochets pour les instructions simples.
Sinon, vous utilisez des crochets.
Vous n'utilisez pas de crochets pour les états uniques. Sinon, utilisez des crochets.
Il existe également un troisième type
de façon de poser des questions dans votre programme. C'est ce qu'on appelle l'opérateur conditionnel, et nous
en avons parlé lorsque nous avons parlé d'opérateurs, mais cela
nécessite un peu plus de compréhension.
L'opérateur conditionnel est donc un opérateur tout à fait unique.
C'est différent de tous les autres opérateurs de c.
La plupart des opérateurs de c sont unaires ou binaires.
Unaire signifie que les opérateurs prennent un seul argument ou un seul opérande.
Binaire signifie qu'ils ont des opérandes des deux côtés.
L'opérateur plus est donc un opérateur binaire car vous faites 5 plus 3,
deux opérandes.
Le négatif est un opérateur unaire car vous dites comme négatif 3.
Eh bien, il y a une troisième option, il y a un opérateur ternaire, qui prend trois opérandes.
Et c'est l'opérateur conditionnel.
Vous avez deux symboles qui sont utilisés pour désigner cet opérateur, cet opérateur conditionnel.
C'est le point d'interrogation et les deux points.
Et c'est vraiment équivalent à une instruction if else.
La façon dont il ressemble est que le premier opérande est placé avant
le point d'interrogation, ce serait la condition, l'expression booléenne dans les exemples précédents.
Et puis la deuxième chose entre le point d'interrogation et les
deux-points serait essentiellement le corps de l'instruction if si l'instruction if était vraie.
Et puis le deux-points est le troisième, et
ce serait si la condition est évaluée à false, vous exécuteriez ce
corps de code, donc c'est comme le corps de l'instruction else.
Donc, cet opérateur tournant n'est rien de plus qu'une instruction if else juste une notation abrégée, vous
pouvez l'écrire beaucoup plus rapidement.
La différence ici également est qu'il n'y a pas de crochets, vous ne pouvez donc avoir
qu'une seule expression ou une seule instruction dans le corps du après le point d'interrogation ou après les deux-points.
Donc, si l'opérateur conditionnel évalue à l'une des
deux expressions selon que l'expression logique est ou non, selon
que la condition est vraie.
Si la condition est fausse, l'expression 2 est évaluée.
Encore une fois, cela se comporte comme une instruction if else.
Notez également comment l'opérateur est organisé par rapport aux opérandes.
Le caractère de point d'interrogation suit la condition d'expression logique.
Le droit du point d'interrogation sont les deux opérandes, l'expression un et l'expression deux.
Ils représentent les choix.
La valeur qui résulte de l'opération sera la valeur de l'expression un si
la condition est évaluée à vrai.
Et puis la valeur de l'expression deux si elle est fausse. Donc exactement ce que j'ai dit sinon.
Regardons un exemple. Cela semble donc drôle à lire,
mais ce que cela signifie, c'est que si x est égal à y
est supérieur à 7,
alors qu'est-ce que cela fait? Est-ce qu'il fait une mission?
X est égal à y. Donc, si x vaut 5 et y vaut 9,
cela dira que si x est supérieur à 9, il définira
alors le nombre à 25 x. Sinon, il va mettre x à 50.
C'est donc un peu déroutant de le lire en premier.
Il en résulte que x est mis à 25 si y est supérieur à 7 ou à 50 dans le cas contraire.
C'est donc un moyen facile de faire une affectation de l'expression.
X est égal à y est supérieur à 7.
Si y est supérieur à 7, x vaut 25, sinon 50.
C'est pourquoi le x équivaut à un porno.
Ainsi, l'opérateur ternaire et les conditions sont sur le côté droit de l'affectation, et
c'est généralement ainsi que vous l'utilisez. Vous dites x est égal, le résultat de
cet opérateur ternaire.
L'opérateur ternaire entier est donc y supérieur à 7. Donc, il suffit de dire si y est
supérieur à 7, 25, sinon 50. Et puis vous attribuez cela à x.
Et c'est généralement ainsi que vous l'utilisez. C'est la même chose
que de dire en utilisant une instruction if. Si y est supérieur à 7, x vaut 25 sinon x vaut 50.
Mais c'est beaucoup moins de code.
La limitation de cet opérateur conditionnel est que
vous ne pouvez avoir que deux variables écrites à l'aide de l'opérateur conditionnel,
un minimum maximum.
Vous ne pouvez pas en faire une tonne. C'est donc un peu limitatif. Il est généralement utilisé pour les affectations.
Donc une assez longue conférence, beaucoup d'exemples différents.
Cela sera plus applicable lorsque nous relèverons notre défi.
Mais si les déclarations doivent être utilisées beaucoup, et
elles sont vraiment, vraiment faciles à apprendre. Avant de vous en rendre
compte, vous allez connaître la syntaxe comme le
dos de votre main, les parenthèses, les crochets, sinon les mots-clés.
Et puis occasionnellement, vous allez utiliser cet opérateur conditionnel.
Encore une fois, c'est peut-être qu'au fur et à mesure que vous devenez plus avancé en c, vous
commencerez à réaliser wow, si l'instruction m'a pris beaucoup de temps
à écrire, peut-être que je peux écrire sur une seule ligne en utilisant l'opérateur
conditionnel avec mon point d'interrogation et mes deux-points.
Encore une fois, très utile pour attribuer des variables en fonction des conditions. Merci.