授業/C言語基礎/if文 のバックアップソース(No.5)

*フローチャート [#j5eef202]

処理の流れは、''フローチャート''(流れ図)という図で表すことができます。


|記号|名前|h
|#ref(./line.png,12.5%)|流れ線|
|#ref(./arrow.png,12.5%)|矢印|
|#ref(./terminal.png,12.5%)|端子|
|#ref(./process.png,12.5%)|処理|
|#ref(./decision.png,12.5%)|判断|

''流れ線''は、制御の流れを表します。
横のときは左から右へ、縦のときは上から下へと進みます。

''矢印''も、制御の流れを表します。
矢印の向きに進みます。
他の流れ線や矢印に合流するときにも、矢印を使います。

''端子''は、開始と終了の場所を表します。
制御の流れは、一つの開始端子から始まり、一つの終了端子で終わります。

''処理''は、その名の通り、処理を表します。

''判断''は、条件によって制御の流れを分岐させます。



*条件分岐 [#r0c7c9fd]

次のようなプログラムを考えてみましょう
 試験の点数が60点以上なら「合格」と表示する。

つまり、点数が60点以上なら「合格」と表示し、そうでないなら何も表示しないようにします。

これをフローチャートで描くと、次のようになります。
#ref(./if1.png,12.5%);

これをC言語風にすると、次のようになります。
#ref(./if2.png,12.5%);
ここで、点数はint型の変数scoreに格納することとし、点数は適当に85点にしています。

判断のラベルが「はい」と「いいえ」から「0でない」と「0」に変わっていますが、これについてはもう少し後で説明します。



*if文 [#i9b7d164]

C言語で条件分岐を行うには、''if文''を使います。

if文は、次の形をしています。
#geshi(c){{
  if (条件) {
    処理
  }
}}

if文は、''( )''内に指定された「条件」を評価し、「条件」が満たされているときだけ「処理」を行います。
「条件」が満たされていないときは、「処理」を行わずに次へ進みます。

「条件」が満たされているときに行う「処理」に含まれる命令文が一つだけのとき、波括弧 ''{ }'' を省略できます。
#geshi(c){{
  if (条件) 命令文;
}}
(省略しなくてもかまいません。)

「条件」には、''比較演算子''や''関係演算子''を使います。
比較演算子と関係演算子については、この下で詳しく説明します。

このif文を使ってC言語のプログラムを書くと、次のようになります(プログラム1)。
#geshi(c){{
#include <stdio.h>

int main(void) {
  int score = 85;
  
  if (score >= 60) {
    printf("合格\n");
  }

  return 0;
}
}}

**演習1 [#oe1c6530]
プログラム1を作成し、実行結果を確認せよ。
また、点数を50点に変更し、実行結果を確認せよ。



*条件を満たさないときにも処理を行う [#saf4584a]

続いて、次のようなプログラムを考えてみましょう。
 試験の点数が60点以上なら「合格」と表示し、そうでないなら「再試験」と表示する。

#ref(./else1.png,12.5%);

#ref(./else2.png,12.5%);

#geshi(c){{
  if (i >= 60) {
    printf("合格\n");
  } else {
    printf("不合格\n");
  }
}}


*3つ以上に分岐する [#jd40ab13]

#geshi(c){{
  if (i >= 60) {
    printf("合格\n");
  } else {
    if (i > 0) {
      printf("再評価試験\n");
    } else {
      printf("不合格\n");
    }
  }
}}

#geshi(c){{
  if (i >= 60) {
    printf("合格\n");
  } else if (i > 0) {
    printf("再評価試験\n");
  } else {
    printf("不合格\n");
  }
}}

*比較演算子 [#m0aa9192]

|優先順位|演算子|使用例|意味|h
|7|<|a < b|左辺の値が右辺の値より''小さい''|
|~|<=|a <= b|左辺の値が右辺の値より''小さいか等しい''(以下)|
|~|&gt;|a > b|左辺の値が右辺の値より''大きい''|
|~|>=|a >= b|左辺の値が右辺の値より''大きいか等しい''(以上)|
|8|==|a == b|左辺の値が右辺の値と''等しい''|
|~|!=|a != b|左辺の値が右辺の値と''等しくない''|

*論理演算子 [#xac5e680]

|優先順位|演算子|使用例|意味|h
|2|!|!a|値が0のとき1、そうでないとき0(論理否定)|
|12|&&|a && b|左辺の値が1''かつ''右辺の値が1のとき1、そうでないとき0(論理積)|
|13|&#x7c;&#x7c;|a &#x7c;&#x7c; b|左辺の値が1''または''右辺の値が1のとき1、そうでないとき0(論理和)|
トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS