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

プログラミング基礎

N/A
N/A
Protected

Academic year: 2021

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

Copied!
14
0
0

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

全文

(1)

CプログラミングⅠ

(2)

条件分岐 : if~else if~else文

if~else if~else文

複数の条件で処理を分ける

条件式1 真 文1-1 偽 文2-1 条件式2 真 偽 文3-1

if~else if~else文の書式

if(条件式1){

文1-1;

文1-2;

} else if(条件式2){

文2-1;

文2-2;

} else {

文3-1;

文3-2;

}

文1-2 : 文2-2 : 文3-2 :

(3)

条件分岐 : if~else if~else文

if~else if~else文

① 条件式1の判定

①-1 条件式1の判定結果が真の場合,

文1を実行し,次の命令へ

①-2 条件式1の判定結果が偽の場合,

文1は実行せずに②へ

② 条件式2の判定

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

文2を実行し,次の命令へ

②-2 条件式2の判定結果が偽の場合,

文2は実行せずに③へ

③ elseの後の文3を実行し,次の命令へ

条件式1,条件式2の順に判定を行い, どれもtrueにならなければ elseの後の命令文を実行

if~else if~else文の書式

if(条件式1){

文1;

} else if(条件式2){

文2;

} else {

文3;

}

(4)

条件分岐 : if~else if~else文

if~else if~else文のプログラム例

① a に格納されている値が 0 かどうか判定 ①-1 0 であるとき "代入されているのは0"を表示 ①-2 0 でないとき ②へ(②の条件判定へ) ② a に格納されている値が 1 かどうか判定 ②-1 1 であるとき "代入されているのは1"を表示 ②-2 1 でないとき ③へ(③の条件判定へ) ③ a に格納されている値が 2 かどうか判定 ③-1 2 であるとき "代入されているのは2"を表示 ③-2 2 でないとき "0,1,2以外の値"を表示 複数の条件分岐 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: #include <stdio.h> int main(void) { int a;

printf("a = "); scanf("%d", &a); if(a == 0) { printf("aに代入されているのは0¥n"); } else if(a == 1) { printf("aに代入されているのは1¥n"); } else if(a == 2) { printf("aに代入されているのは2¥n"); } else { printf("0,1,2以外の値¥n"); } return 0; } 実行結果の例 a = 1⏎ aに代入されているのは1

(5)

条件分岐 : if~else if~else文

フローチャート

複数の条件分岐 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: #include <stdio.h> int main(void) { int a;

printf("a = "); scanf("%d", &a); if(a == 0) { printf("aに代入されているのは0¥n"); } else if(a == 1) { printf("aに代入されているのは1¥n"); } else if(a == 2) { printf("aに代入されているのは2¥n"); } else { printf("0,1,2以外の値¥n"); } return 0; } 実行結果の例 a = 1⏎ aに代入されているのは1 a == 1

start

end

真 偽 if

プログラムの

フローチャート

aに代入されて いるのは1 aに代入されて いるのは2 a == 2 0,1,2以外の値 偽 真 if int a; a = 1; a == 0 aに代入されて いるのは0 if 偽 真

(6)

条件分岐 : if~else if~else文

フローチャート

複数の条件分岐 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: #include <stdio.h> int main(void) { int a;

printf("a = "); scanf("%d", &a); if(a == 0) { printf("aに代入されているのは0¥n"); } else if(a == 1) { printf("aに代入されているのは1¥n"); } else if(a == 2) { printf("aに代入されているのは2¥n"); } else { printf("0,1,2以外の値¥n"); } return 0; } 実行結果の例 a = 1⏎ aに代入されているのは1 条件が成り立った場合, それ以降の else if(条件式),else の 処理は行わずに, 次の命令(左のプログラムの場合には 次の命令はない)に進む

(7)

switch文の書式

switch(式){

case 値1:

文1-1;

break;

case 値2:

文2-1;

break;

:

:

default :

文n-1;

}

条件分岐 : switch文

switch文 : 式の値で処理を切り替える

式 文1-1 式の値が値1のとき 文2-1 文n-1 式の値が値2のとき

break文が

必ず必要!

コロン( : )で あることに注意 その他 : : :

(8)

条件分岐 : switch文

switch文 : 式の値で処理を切り替える

① 式の判定

①-1 式の値が値1であれば

文1を実行

break文まで実行し,switch文を終了する

①-2 式の値が値2であれば

文2を実行

break文まで実行し,switch文を終了する

①-n 式の値が値1,値2・・・のどれでもなければ

文nを実行

switch文を終了する

式の値(基本的には変数に格納されている値)

によって実行する文が異なる

switch文の書式

switch(式){

case 値1:

文1;

break;

case 値2:

文2;

break;

:

:

default :

文n;

}

(9)

条件分岐 : switch文

switch文のプログラム例

① a に格納されている値を判定 ①-1 1 であるとき "aの値は1"を表示 ①-2 2 であるとき "aの値は2"を表示 ①-3 3 であるとき "aの値は3"を表示 ①-4 1,2,3以外のとき "1,2,3以外の値"を表示 処理の切り替え 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: #include <stdio.h> int main(void) { int a;

printf("a = "); scanf("%d", &a); switch(a) { case 1: printf("aの値は1¥n"); break; case 2: printf("aの値は2¥n"); break; case 3: printf("aの値は3¥n"); break; default: printf("1,2,3以外の値¥n"); } return 0; } 実行結果の例 a = 2⏎ aの値は2

(10)

条件分岐 : switch文

switch文のプログラム例

処理の切り替え 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: #include <stdio.h> int main(void) { int a = 2; switch(a) { case 1: printf("aの値は1¥n"); break; case 2: printf("aの値は2¥n"); break; case 3: printf("aの値は3¥n"); break; default: printf("1,2,3以外の値¥n"); } return 0; }

start

end

a=2

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

1,2,3以外 の値 a=1 a=3 int a; a = 2; a aの値は1 switch その他 aの値は2 aの値は3

(11)

条件分岐 : switch文

switch文の使用における注意

値1,値2,・・・はひとつの整数値もしくは文字でなければ

ならない(式についても,整数値もしくは文字が格納された

変数が望ましい)

caseの後の処理する文の最後に必ずbreak文を入れる

すべて出力されて

しまう

break文がないと・・・ 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: int main(void) { int a = 1; switch(a) { case 1: printf("aの値は1¥n"); case 2: printf("aの値は2¥n"); default: printf("1,2以外の値¥n"); } return 0; } 実行結果 aの値は1 aの値は2 1,2以外の値

(12)

条件演算子

条件演算子

条件に応じて式の値を変えることができる

条件

?

式1

:

式2

構文

条件が真の場合は式1の値,

偽の場合は式2の値が

式全体の値となる

if文よりも簡潔に書ける例

if~else文の使用例 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: int main(void) { int a = 1; char c; if(a == 1) c = 'A'; else c = 'B'; printf("c = %c¥n", c); return 0; } 条件演算子の使用例 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: int main(void) { int a = 1; char c; c = (a == 1) ? 'A' :'B'; printf("c = %c¥n", c); return 0; }

(13)

論理演算子(発展編)

ビット単位の論理演算

整数型のデータは複数のビット(int型なら32ビット)を

持っている

ビット単位の論理演算では,それぞれのビット毎に

ANDやORの演算を行うことができます.

0000000000000101

& 12

例 : short int 数値のビット単位演算

各ビット毎に論理演算を行う

演算子 結果のビットが1となる場合 & 2数のどちらのビットも1 | 2数のどちらかのビットが1 ^ 2数のビットが異なる場合 ~ ビットが0の場合(単項演算子) 0000000000001100 0000000000000100 普通の論理演算と違って 記号1つだけ

(14)

講義のまとめ

講義内容

if~else if~else文

switch文

条件演算子,論理演算子(発展編)

ポイント

if~else if~else文,switch文を使って複数の条件に応じた

処理(多分岐)を行うことができる

switch文では,原則としてcaseごとにbreak文を入れること

条件演算子を使って,式の値の条件によって変更できる

参照

関連したドキュメント

輸入貨物の包装(当該貨物に含まれるものとされる包装材料(例えばダンボール紙、緩衝

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

[r]

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

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

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

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

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