授業/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