{"id":7116,"date":"2017-08-22T22:20:17","date_gmt":"2017-08-22T20:20:17","guid":{"rendered":"https:\/\/www.auditsi.eu\/?p=7116"},"modified":"2017-08-22T22:20:17","modified_gmt":"2017-08-22T20:20:17","slug":"tests-conditionnels-en-langage-c","status":"publish","type":"post","link":"https:\/\/www.auditsi.eu\/?p=7116","title":{"rendered":"Tests conditionnels en langage C"},"content":{"rendered":"<p style=\"text-align: justify;\">Un test conditionnel permet de n\u2019ex\u00e9cuter une instruction ou ensemble d\u2019instructions que si une ou plusieurs conditions sont remplies.<\/p>\n<p style=\"text-align: justify;\"><a href=\"https:\/\/www.auditsi.eu\/wp-content\/uploads\/2012\/06\/Test-conditionnel.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1799\" title=\"Test conditionnel\" src=\"https:\/\/www.auditsi.eu\/wp-content\/uploads\/2012\/06\/Test-conditionnel.png\" alt=\"\" width=\"371\" height=\"284\" \/><\/a><strong><em>Condition simple : SI condition r\u00e9alis\u00e9e ALORS action<\/em><\/strong><\/p>\n<p style=\"text-align: justify;\">Les tests conditionnels sont une structure de programmation courante, facile \u00e0 programmer qui se traduit ainsi en\u00a0C : IF condition r\u00e9alis\u00e9e THEN action. La condition doit \u00eatre entour\u00e9e de parenth\u00e8ses.<\/p>\n<p style=\"text-align: justify;\"><em>Exemple :<\/em><\/p>\n<pre class=\"lang:c decode:true\">If (age&gt;=18) {\r\n     printf \"Le sujet est majeur\";\r\n}<\/pre>\n<p style=\"text-align: justify;\">L\u2019action PRINTF &#8220;Le sujet est majeur&#8221; ne sera ex\u00e9cut\u00e9e que si le contenu de la variable <em>age<\/em> est sup\u00e9rieur ou \u00e9gal \u00e0 18.<\/p>\n<p style=\"text-align: justify;\">Le test conditionnel repose sur une comparaison. C&#8217;est la r\u00e9alisation ou non de la condition qui conditionne l&#8217;action \u00e0 ex\u00e9cuter.<\/p>\n<p style=\"text-align: justify;\"><em>Expression de la comparaison :<\/em><\/p>\n<p style=\"text-align: justify;\">La condition utilise une variable (dans l&#8217;exemple pr\u00e9c\u00e9dent la variable <em>age<\/em>), des op\u00e9rateurs de comparaison (ici : &gt;=) et des nombres et du texte. La notion de variable a d\u00e9j\u00e0 \u00e9t\u00e9 introduite.<\/p>\n<p style=\"text-align: justify;\">Les <a href=\"https:\/\/www.auditsi.eu\/?p=6979\">op\u00e9rateurs de comparaison<\/a> utilis\u00e9s pour exprimer la condition sont pour une bonne part repris du monde des math\u00e9matiques :<\/p>\n<ul>\n<li>&lt; (inf\u00e9rieur \u00e0),<\/li>\n<li>&gt; (sup\u00e9rieur \u00e0),<\/li>\n<li>&lt;&gt; (diff\u00e9rent de),<\/li>\n<li>= (\u00e9gal \u00e0),<\/li>\n<li>&lt;= (inf\u00e9rieur ou \u00e9gal \u00e0),<\/li>\n<li>&gt;= (sup\u00e9rieur ou \u00e9gal \u00e0),<\/li>\n<li>NOT (non)<\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><strong><em>Expression de conditions multicrit\u00e8res :<\/em><\/strong><\/p>\n<p style=\"text-align: justify;\">Le pr\u00e9c\u00e9dent exemple ne comprenait qu\u2019un seul crit\u00e8re. La condition peut comprendre plusieurs crit\u00e8res. Chaque crit\u00e8re est li\u00e9 au pr\u00e9c\u00e9dent par un op\u00e9rateur\u00a0&amp;&amp; (et) ou\u00a0|| (ou).<\/p>\n<p style=\"text-align: justify;\"><em>Exemple :<\/em><\/p>\n<p style=\"text-align: justify;\">If (age&gt;=18)\u00a0&amp;&amp; (age&lt;=30)&#8230; : Si l&#8217;\u00e2ge est compris entre 18 et 30 ans (bornes comprises) alors&#8230;<\/p>\n<p style=\"text-align: justify;\">If (age=30)\u00a0|| (age=45)&#8230; : Si l&#8217;\u00e2ge est \u00e9gal \u00e0 18 ans ou \u00e0 45 alors&#8230;<\/p>\n<p style=\"text-align: justify;\">Attention aux conditions impossibles : par exemple, pour reprendre l&#8217;exemple pr\u00e9c\u00e9dent, la condition : If (age=30)\u00a0&amp;&amp; (age=45)&#8230; est irr\u00e9alisable puisque la variable (ou un \u00eatre humain normalement constitu\u00e9 d&#8217;ailleurs) ne peut simultan\u00e9ment prendre les valeurs 30 et 45.<\/p>\n<p style=\"text-align: justify;\">Il est parfaitement possible d&#8217;imbriquer des conditions et de d\u00e9finir les priorit\u00e9s entre elles \u00e0 l&#8217;aide de parenth\u00e8ses. Dans ce cas, le <a href=\"https:\/\/www.auditsi.eu\/?p=6458\">r\u00e9gime des priorit\u00e9s<\/a> r\u00e9pond aux m\u00eames r\u00e8gles qu&#8217;en math\u00e9matiques. A noter, chaque parenth\u00e8se ouverte doit \u00eatre referm\u00e9e&#8230;<\/p>\n<p style=\"text-align: justify;\"><em>Exemple :<\/em><\/p>\n<pre class=\"lang:default decode:true\">If ((typeclient=\"Grand Compte\") &amp;&amp; ((CA&gt;1000000) &amp;&amp; (CA&lt;5000000))) || ((typeclient=\"PME\") &amp;&amp; ((CA&gt;10000) &amp;&amp; (CA&lt;50000))) {\r\nTauxRemise = 0.10\r\n}<\/pre>\n<p style=\"text-align: justify;\">Si le client est un grand compte et que son chiffre d&#8217;affaires est compris entre 1 et 5 millions ou s&#8217;il s&#8217;agit d&#8217;une PME et que son CA est compris entre 10 et 50 K\u20ac alors le taux de remise appliqu\u00e9 est de 10 %.<\/p>\n<p style=\"text-align: justify;\"><em><strong>Et sinon ?<\/strong><\/em><\/p>\n<p style=\"text-align: justify;\">Pour l&#8217;instant, nous avons programm\u00e9 l&#8217;action \u00e0 r\u00e9alis\u00e9 si la condition est remplie. Mais quid si l&#8217;action n&#8217;est pas remplie ? L&#8217;instruction Else permettra l&#8217;ex\u00e9cution d&#8217;une action alternative si la condition n&#8217;est pas remplie.<\/p>\n<p style=\"text-align: justify;\">Exemple :<\/p>\n<pre class=\"lang:default decode:true\">If (age&gt;=18) {\r\n     Printf \"Le sujet est majeur\";\r\n}\r\nElse {\r\n     Printf \"Le sujet est mineur\";\r\n}<\/pre>\n<p style=\"text-align: justify;\">Normalement, si vous avez bien suivi le cours, vous avez tout compris&#8230;<\/p>\n<p style=\"text-align: justify;\"><strong><em>Tests conditionnels imbriqu\u00e9s :<\/em><\/strong><\/p>\n<p style=\"text-align: justify;\">La r\u00e9alit\u00e9 des choses (et quelquefois la perversit\u00e9 du programmeur, po\u00e8te \u00e0 sa mani\u00e8re) conduit le programmeur \u00e0 imbriquer des tests.<\/p>\n<p style=\"text-align: justify;\">Ces tests seront effectu\u00e9s jusqu&#8217;\u00e0 ce qu&#8217;une condition ne soit pas remplie ; dans ce cas le programme sort de la s\u00e9quence de tests et continue son ex\u00e9cution.<\/p>\n<p style=\"text-align: justify;\">La structure de programmation est la suivante :<\/p>\n<p style=\"text-align: center;\">If condition { If&#8230;\u00a0{ Else {&#8230;} : SI ALORS SINON SI ALORS SINON\u2026<\/p>\n<p style=\"text-align: justify;\">Le programmeur peut laisser libre cours \u00e0 son imagination&#8230;<\/p>\n<p style=\"text-align: justify;\"><strong><em>Et dans d&#8217;autres langage ?<\/em><\/strong><\/p>\n<p style=\"text-align: justify;\">La structure de programmation est &#8220;relativement&#8221; semblable d&#8217;un langage \u00e0 l&#8217;autre.<\/p>\n<p style=\"text-align: justify;\"><em>Basic :<\/em><\/p>\n<pre class=\"lang:default decode:true \">If age&gt;=18 Then Etat=\"Majeur\" Else Etat=\"Mineur\"<\/pre>\n<p><em>VBA :<\/em><\/p>\n<pre class=\"lang:default decode:true\">If age&gt;=18 Then Etat=\"Majeur\" Else Etat=\"Mineur\"<\/pre>\n<p>(EndIf cl\u00f4turera la structure conditionnelle si le test est pr\u00e9sent\u00e9 sur plusieurs lignes)<\/p>\n<p style=\"text-align: justify;\"><em>DELPHI :<\/em><\/p>\n<pre class=\"lang:default decode:true \">If age&gt;=18 Then Etat:='Majeur' Else Etat='Mineur';<\/pre>\n<p style=\"text-align: justify;\"><em>PHP :<\/em><\/p>\n<pre class=\"lang:default decode:true\">if($age &gt;= 18):\r\n\r\n$etat=\"Majeur\";\r\n\r\nelse:\r\n\r\n$etat=\"Mineur\";\r\n\r\nendif;<\/pre>\n<p style=\"text-align: justify;\">Approfondir le sujet : <a title=\"Programmer en VBA\" href=\"https:\/\/www.auditsi.eu\/?cat=1839\">programmer en langage C<\/a><\/p>\n<div style=\"padding-bottom:20px; padding-top:10px;\" class=\"hupso-share-buttons\"><!-- Hupso Share Buttons - https:\/\/www.hupso.com\/share\/ --><a class=\"hupso_counters\" href=\"https:\/\/www.hupso.com\/share\/\"><img decoding=\"async\" src=\"https:\/\/static.hupso.com\/share\/buttons\/lang\/fr\/share-small.png\" style=\"border:0px; padding-top:2px; float:left;\" alt=\"Share Button\"\/><\/a><script type=\"text\/javascript\">var hupso_services_c=new Array(\"twitter\",\"facebook_like\",\"facebook_send\",\"email\",\"print\",\"linkedin\");var hupso_counters_lang = \"fr_FR\";var hupso_image_folder_url = \"\";var hupso_twitter_via=\"BenoitRiviere14\";var hupso_url_c=\"\";var hupso_title_c=\"Tests%20conditionnels%20en%20langage%20C\";<\/script><script type=\"text\/javascript\" src=\"https:\/\/static.hupso.com\/share\/js\/counters.js\"><\/script><!-- Hupso Share Buttons --><\/div>","protected":false},"excerpt":{"rendered":"<p>Un test conditionnel permet de n\u2019ex\u00e9cuter une instruction ou ensemble d\u2019instructions que si une ou plusieurs conditions sont remplies. Condition simple : SI condition r\u00e9alis\u00e9e ALORS action Les tests conditionnels sont une structure de programmation courante, facile \u00e0 programmer qui se traduit ainsi en\u00a0C : IF condition r\u00e9alis\u00e9e THEN action. La condition doit \u00eatre entour\u00e9e &#8230;<\/p>\n<p><a href=\"https:\/\/www.auditsi.eu\/?p=7116\" class=\"more-link\">Continue reading &lsquo;Tests conditionnels en langage C&rsquo; &raquo;<\/a><\/p>\n<div style=\"padding-bottom:20px; padding-top:10px;\" class=\"hupso-share-buttons\"><!-- Hupso Share Buttons - https:\/\/www.hupso.com\/share\/ --><a class=\"hupso_counters\" href=\"https:\/\/www.hupso.com\/share\/\"><img src=\"https:\/\/static.hupso.com\/share\/buttons\/lang\/fr\/share-small.png\" style=\"border:0px; padding-top:2px; float:left;\" alt=\"Share Button\"\/><\/a><script type=\"text\/javascript\">var hupso_services_c=new Array(\"twitter\",\"facebook_like\",\"facebook_send\",\"email\",\"print\",\"linkedin\");var hupso_counters_lang = \"fr_FR\";var hupso_image_folder_url = \"\";var hupso_twitter_via=\"BenoitRiviere14\";var hupso_url_c=\"\";var hupso_title_c=\"Tests%20conditionnels%20en%20langage%20C\";<\/script><script type=\"text\/javascript\" src=\"https:\/\/static.hupso.com\/share\/js\/counters.js\"><\/script><!-- Hupso Share Buttons --><\/div>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"ngg_post_thumbnail":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[1839],"tags":[588,223,270,222],"class_list":["post-7116","post","type-post","status-publish","format-standard","hentry","category-c","tag-if-condition-elseif-condition-else","tag-if-then-elseif","tag-if-then-else","tag-tests-conditionnels"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_likes_enabled":false,"_links":{"self":[{"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=\/wp\/v2\/posts\/7116","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7116"}],"version-history":[{"count":5,"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=\/wp\/v2\/posts\/7116\/revisions"}],"predecessor-version":[{"id":7125,"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=\/wp\/v2\/posts\/7116\/revisions\/7125"}],"wp:attachment":[{"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7116"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7116"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7116"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}