- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- 授業/C言語基礎/if文 へ行く。
- 1 (2015-10-01 (木) 10:09:36)
- 2 (2015-10-03 (土) 11:29:43)
- 3 (2015-10-06 (火) 08:08:08)
- 4 (2015-10-06 (火) 08:11:02)
- 5 (2015-10-07 (水) 00:57:03)
- 6 (2015-10-07 (水) 01:22:04)
- 7 (2015-10-07 (水) 23:15:36)
- 8 (2015-10-08 (木) 18:52:15)
- 9 (2015-10-08 (木) 19:10:14)
- 10 (2015-10-12 (月) 09:12:26)
- 11 (2015-10-12 (月) 09:12:26)
- 12 (2015-10-12 (月) 09:12:26)
- 13 (2016-10-05 (水) 18:47:16)
- 14 (2016-10-07 (金) 12:53:53)
- 15 (2016-10-13 (木) 14:23:30)
- 16 (2016-10-15 (土) 18:43:08)
- 17 (2017-10-05 (木) 16:38:40)
フローチャート †
処理の流れは、フローチャート(流れ図)という図で表すことができます。
流れ線は、制御の流れを表します。 横のときは左から右へ、縦のときは上から下へと進みます。
矢印も、制御の流れを表します。 矢印の向きに進みます。 他の流れ線や矢印に合流するときにも、矢印を使います。
端子は、開始と終了の場所を表します。 制御の流れは、一つの開始端子から始まり、一つの終了端子で終わります。
処理は、その名の通り、処理を表します。
判断は、条件によって制御の流れを分岐させます。
条件分岐 †
次のようなプログラムを考えてみましょう
試験の点数が60点以上なら「合格」と表示する。
つまり、点数が60点以上なら「合格」と表示し、そうでないなら何も表示しないようにします。
これをフローチャートで描くと、次のようになります。
これをC言語風にすると、次のようになります。
ここで、点数は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点以上なら「合格」と表示し、そうでないなら「再試験」と表示する。
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(論理和) |