• 検索結果がありません。

プログラミング基礎

N/A
N/A
Protected

Academic year: 2021

シェア "プログラミング基礎"

Copied!
17
0
0

読み込み中.... (全文を見る)

全文

(1)

CプログラミングⅠ

(2)

条件分岐

条件分岐とは

ある条件が成立したときとしないときで処理の内容を変更

する

場合に応じた,複雑な処理を行うことができる

C言語では,if文,if~else文,if~else if~else文,switch文

で条件分岐の処理を実現できる

ご褒美に何か買ってもらう

お小遣いが減らされる

成績が良かったか?

yes

no

条件分岐

(3)

関係演算子と条件

『条件』って何?

さまざまな状況を表すための概念

『場合に応じた処理』に用いる

条件の表し方

プログラムでは条件も「式」で表す

条件式の値

条件が満たされる(成り立つ)場合 ⇒ 真(true)

満たされない(成り立たない)場合 ⇒ 偽(false)

条件の例

成績がよかったら 旅行に行く 成績がいまひとつ 勉強する

条件を用いると

状況に応じて

処理を変えること

ができる.

条件:よい成績である

※80点以上なら「よい」成績とすると

90点の場合

60点の場合

80点以上なので条件は「真」

80点未満なので条件は「偽」

この場合,プログラムでは条件『80点以上である』を式として表す

(4)

3 > 1

関係演算子と条件

C言語で記述できる「条件」

二つの数の大,小,等価など

比較する数を『関係演算子』で結んで表記する

例: 3 > 1, 3 < 1 など

条件式は評価され,

条件が満たされて(成り立って)いれば

「真」

満たされて(成り立って)いなければ

「偽」

関係演算子

評価

条件:

1 > 3

関係演算子

評価

条件:

条件式の演算も

通常の式の演算

と同じ

の値をとる

(5)

関係演算子と条件

関係演算子

右表参照

関係演算子利用の注意点

条件式に変数を含む場合は,変数の値によって式の評価値が異なる

= (代入演算子)と == (関係演算子) を混同しない

条件式の値

条件が偽のとき条件式の値は 0 となる

条件が真のとき条件式の値は 0 以外の数値(通常は 1 )となる

C言語では 数値の 0 を「偽」、0 以外を「真」として扱う

関係演算子

使用例

意味

==

a == b

b が a に等しい

!=

a != b

b が a に等しくない

>

a > b

b より a が大きい

>=

a >= b

b より a が大きいか等しい

<

a < b

b より a が小さい

<=

a <= b

b より a が小さいか等しい

代入演算子(=)

と混同しない

ように注意

(6)

関係演算子と条件

いろいろな条件式

== 6

変数の値によって

評価する

式との比較の場合,

式の評価結果との

比較となる

変数同士で

それぞれに格納されている

値によって評価する

12

10

a

==

a

b

変数に格納されている値との比較

式の評価結果を比較

a

+ 6 > 10

(7)

条件分岐 : if文

if文

条件式が真の場合に処理を行う

条件式 文1 真 偽

① 条件式の判定

② 条件式の判定結果が真(true)の場合,

{ }ブロック内の文を実行

③ 条件式の判定結果が偽(false)の場合,

{ }ブロック内の文は実行しない

条件式が真の

場合のみ

{ }ブロック内の

文を実行する

if文の書式

if( 条件式 ){

文1;

文2;

}

文2 :

(8)

条件分岐 : if文

if文のプログラム例

① キーボードから整数値を入力し, a に格納 ② a に格納されている値が1かどうかを 判定(1と等しいか判定) ②-1 a が1である(1と等しい)とき printf文を実行 ②-2 a がでない(1と等しくない)とき 何もしない ③ printf("処理を終了します.¥n"); を実行 入力値によって処理を変える 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: #include <stdio.h> int main(void) { int a; printf("a = "); scanf("%d", &a); if(a == 1){ printf("入力された値は1です.¥n"); } printf("処理を終了します.¥n"); return 0; } 実行結果 a = 1[Enter] 入力された値は1です. 処理を終了します. 実行結果 a = 0[Enter] 処理を終了します.

入力によって

結果が異なること

(9)

条件分岐 : if文

フローチャート

プログラムの処理の流れを図式化したもの

入力値によって処理を変える 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: #include <stdio.h> int main(void) { int a; printf("a = "); scanf("%d", &a); if(a == 1) { printf("入力された値は1です.¥n"); } printf("処理を終了します.¥n"); return 0; } a == 1

start

end

真 偽 if 処理を 終了します. 入力された 値は1です. a = 変数aに 値を入力

プログラムのフローチャート

int a;

(10)

条件分岐 : if文

if文のプログラム例

入力値によって処理を変える 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: #include <stdio.h> int main(void) { int a; printf("a = "); scanf("%d", &a); if(a == 1) printf("入力された値は1です.¥n"); printf("処理を終了します.¥n"); return 0; }

条件が真の場合に行う文が

1つのみの場合には

{ } は書かなくてもよい

ただし,見やすいプログラムを書くために

必ず字下げする

(11)

論理演算子(基本編)

論理演算子

条件を組み合わせて複雑な条件をつくることができる

条件を組み合わせた例

5 > 3 && 3 == 4

a == 6 | | a >= 12

! (a == 6)

論理演算子 名前 使用例 意味

&& 論理積(AND) (条件1) && (条件2) 条件1と条件2がともにtrueのとき true | | 論理和(OR) (条件1) | | (条件2) 条件1または条件2がtrueのとき true ! 否定(NOT) !(条件) 条件がfalseのとき true

右辺が偽なので,

条件式全体も偽となる

a に格納されている値が 6

または

a に格納されている値が 12 以上

のとき真

a に格納されているが 6 以外のとき 真

(12)

論理演算子を用いた複雑な条件による条件分岐

複雑な条件による分岐

① キーボードから整数値を入力し, a に格納 ② a に格納されている値が 5 以上かつ 10 以下かどうか判定 ( 5 から 10 の間の値か判定) ②-1 5 以上かつ 10 以下であるとき printf文を実行 ②-2 5 以上かつ 10 以下でないとき 何もしない ③ printf("処理を終了します.¥n"); を実行 複雑な条件による分岐 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: #include <stdio.h> int main(void) { int a;

printf("a = "); scanf("%d", &a); if(a >= 5 && a <= 10) { printf("入力値は5~10の値です.¥n"); } printf("処理を終了します.¥n"); return 0; } 実行結果 a = 7[Enter] 入力値は5~10の値です. 処理を終了します. 実行結果 a = 0[Enter] 処理を終了します.

(13)

論理演算子を用いた複雑な条件による条件分岐

フローチャート

複雑な条件による分岐 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: #include <stdio.h> int main(void) { int a;

printf("a = "); scanf("%d", &a); if(a >= 5 && a <= 10) { printf("入力値は5~10の値です.¥n"); } printf("処理を終了します.¥n"); return 0; } a >= 5 && a <= 10

start

end

真 偽 if 処理を 終了します. 入力値は 5~10の 値です. a = 変数aに 値を入力

プログラムのフローチャート

int a;

(14)

条件分岐 : if~else文

if~else文

条件式が真,偽のそれぞれの場合に指定した処理を行う

14 条件式 真 文1-1 偽

① 条件式の判定

② 条件式の判定結果が真の場合,

文1を実行

③ 条件式の判定結果が偽の場合,

文2を実行

条件式が

真の場合と偽の場合で

実行する文が異なる

文2-1

if~else文の書式

if( 条件式 ){

文1-1;

文1-2;

} else {

文2-1;

文2-2;

}

文1-2 : 文2-2 :

(15)

条件分岐 : if~else文

if~else文のプログラム例

① キーボードから整数値を入力し, a に格納 ② a に格納されている値が 1かどうかを判定 ②-1 a が 1 であるとき ”入力された値は1です." を表示 ②-2 a が 1 でないとき ”1以外が入力されました." を表示 ③ "処理を終了します."を表示 入力値によって処理を変える(if~else文) 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: #include <stdio.h> int main(void) { int a;

printf("a = "); scanf("%d", &a); if(a == 1){ printf("入力された値は1です.¥n"); } else { printf("1以外が入力されました.¥n"); } printf("処理を終了します.¥n"); return 0; } 実行結果 a = 1[Enter] 入力された値は1です. 実行結果 a = 0[Enter] 1以外が入力されました. 処理を終了します.

(16)

条件分岐 : if~else文

フローチャート

入力値によって処理を変える(if~else文) 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: #include <stdio.h> int main(void) { int a;

printf("a = "); scanf("%d", &a); if(a == 1){ printf("入力された値は1です.¥n"); } else { printf("1以外が入力されました.¥n"); } printf("処理を終了します.¥n"); return 0; } a == 1

start

end

真 偽 if 1以外が入力 されました. 整数を入力 してください. 変数aに 値を入力 入力された 値は1です. 処理を 終了します.

プログラムのフローチャート

int a;

(17)

講義のまとめ

講義内容

関係演算子と条件

if文とif~else文

論理演算子

ポイント

関係演算子を使って条件を作成する

if文,if~else文を使って条件に応じた処理を行うことができる

論理演算子を使って複雑な条件を作成できる

参照

関連したドキュメント

定率法 17 条第1項第 11 号及び輸徴法第 13

[r]

件数 年金額 件数 年金額 件数 年金額 千円..

3.3.2.1.3.1 設置許可基準規則第 43 条第 1 項への適合方針 (1) 環境条件及び荷重条件(設置許可基準規則第 43 条第 1 項一).

●加盟団体・第一陣として、 地域 創造基金さなぶり(宮城)、ちばの

国際地域理解入門B 国際学入門 日本経済基礎 Japanese Economy 基礎演習A 基礎演習B 国際移民論 研究演習Ⅰ 研究演習Ⅱ 卒業論文

いっ娘」 店長 平成 29 年8月 18 日(金) JA

自動車の走行に伴う道路交通騒音(L Aeq )の予測手順は、図 6.4-9に示す手順に従って 行った。. 図 6.4-9 道路交通の騒音レベルの予測手順