STEP 2 - 条件分岐
 │
 ├ if文関係演算子elseの使用
 │ └ 真と偽論理演算子
 │ ├ 論理積
 │ ├ 論理和
 │ └ 否定多重構造のif文多分岐型のif文
猿でも解る C言語講座

Written by Yuki.
http://ftc.suki.net/
プログラムの流れを制御する文(制御文)。プログラムの骨組みになる。


<if文>  「式」の記述が正しい C言語の式であれば、条件判断の結果によりif文の動作が決まる。  if(条件式) ' ここではセミコロンを付けない。    実行させる命令; ' 付けるのは実行内容を書いた次の文になる。  式が成立した時のみ、書かれた命令が実行される。  不成立の場合は、if文以降の文が実行される。  ※実行する命令が複数ある時は括弧で括る。  if (条件式) { ' 複数命令は中括弧で括る。    命令1; ' 一連の動作は基本的に括弧で範囲を指定する事になる。    命令2;  }
<関係演算子>  if文の比較条件は、2つの値を関係演算子で比較するケースが多い。 C VB  等しい a==b a=b ' Cの場合、イコールを使うには2つ繋げる必要がある。  等しくない a!=b a<>b ' イコールを1つだけにしてしまった場合、誤作動を起こす。 ' この時、エラーが出ないので気付きにくい。
<elseの使用>  二者択一の条件分岐では else を用いる。  if(i==0)    printf("偶数");  else   ' 条件不成立時    printf("奇数");  式が成立したら偶数、不成立なら奇数を表示させる。  ※elseでも複数命令によるブロック化はできる。  ・真と偽   if文の分岐は、比較条件が真(TRUE)か、偽(FALSE)かにより判断される。   真とは、条件式の結果が 0以外の値であること。   偽とは、条件式の結果が 0であること。
<論理演算子>  &&(論理積 AND)と ||(論理和 OR)は 2つの関係式を結合する事ができる。  if(a==b && c==d)  ' A=B かつ C=D  if(a==b || c==d)  ' A=B または C=D  (1)論理積    結合した関係式が全て成立すれば、全体が成立する。    1つでも不成立ならば全体が不成立となる。    if(a==1&&b==1)      printf("a,bとも 1");    else      printf("どちらかが 1ではない");  (2)論理和    結語した関係式のうち、1つでも成立すれば全体が成立する。    全て不成立なら全体も不成立となる。    if(a==1||b==1)      printf("どちらかが 1");    else      printf("a,bとも 1ではない");  (3)否定    「!」の後に指定されている比較式が真ならば、全体は偽になり、    比較式が偽ならば、全体が真になる。    if(!(a==1)) ' a=1(比較式が真)の時、if文は偽。    if(a!=1) ' aが1以外の時、if文は真。  ※関係演算子により得られる値   if(a==0)のケース   ・aが 0ならば成立。よって括弧内は 1(真)になる。   ・aが 0以外ならば不成立。よって括弧内は 0(偽)になる。  ※論理演算子は結合した関係演算子の値により、真偽を判定する。   a b‖ a&&b | a||b | !a !b ' && は結合したものを乗算する。   ---+-----------+-----------+-------- ' || は結合したものを加算する。   0 0‖ 0&&0 → 0 | 0||0 → 0 | 1 1 ' ! は真・偽を反転させる。   0 1‖ 0&&1 → 0 | 0||1 → 1 | 1 0   1 0‖ 1&&0 → 0 | 1||0 → 1 | 0 1   1 1‖ 1&&1 → 1 | 1||1 → 1 | 0 0
<多重構造のif文>  内側のif文は内容を分かり易くする為、字下げを行う。  if(a>=1){    if(a==1)      printf("a=1");    else      printf("aは 1より大きい");  }
<多分岐型のif文>  あまり字下げが多くなり過ぎると、かえって見づらくなってしまうので、  内側のif文の else句は、前のifの頭に合わせる事になっている。
← ← Back to BeforeStep Go to NextStep → →