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


フローチャート †

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

記号名前
line.png
流れ線
arrow.png
矢印
terminal.png
端子
process.png
処理
decision.png
判断

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

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

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

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

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

条件分岐 †

次のようなプログラムを考えてみましょう

試験の点数が60点以上なら「合格」と表示する。

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

これをフローチャートで描くと、次のようになります。

if1.png

これをC言語風にすると、次のようになります。

if2.png

ここで、点数はint型の変数scoreに格納することとし、点数は適当に85点にしています。

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

if文 †

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

if文は、次の形をしています。

  if (条件) {
    処理
  }

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

「条件」が満たされているときに行う「処理」に含まれる命令文が一つだけのとき、波括弧 { } を省略できます。

  if (条件) 命令文;

(省略しなくてもかまいません。)

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

このif文を使ってC言語のプログラムを書くと、次のようになります(プログラム1)。

#include <stdio.h>

int main(void) {
  int score = 85;

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

  return 0;
}

演習1 †

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

条件を満たさないときにも処理を行う †

続いて、次のようなプログラムを考えてみましょう。

試験の点数が60点以上なら「合格」と表示し、そうでないなら「再試験」と表示する。
else1.png
else2.png
  if (条件) {
    処理1
  } else {
    処理2
  }

3つ以上に分岐する †

  if (条件) 命令文1;
  else 命令文2;
  if (条件) 命令文1;
  else {
    処理2
  }

比較演算子 †

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

論理演算子 †

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