プログラミング1 プログラミング演習I 第2回
条件分岐 変数宣言 int a; aを入力 はい aは2で 割り切れる? いいえ “aは偶数です” と表示 “aは奇数です” と表示
if 文 条件分岐を行う 使い方 if (条件式){ 文1;条件式が真のとき実行 } else { 文2;条件式が偽のとき実行 } なくても良い 書かなければ 偽の時は何も実行されない
条件分岐 はい いいえ はい いいえ 処理1 (ifの直後に書く) 処理2 (else以下に書く) 処理1 (ifの直後に書く) なくてもOK 続き 続き
if 文 #include<stdio.h> void main() { int a; printf("整数を入力してください"); scanf("%d",&a); if ( a > 10 ){ printf("aは10より大きい\n"); } #include<stdio.h> void main() { int a; printf("整数を入力してください"); scanf("%d"); if ( a > 10 ){ printf("aは10より大きい\n"); } else { printf("aは10より小さい\n"); }
条件式の書き方 演算子 内容 a < b a <= b a > b a >= b a == b a != b
if 文 例 #include<stdio.h> void main() { int a; printf("整数を入力してください"); scanf("%d",&a); if ( a%2 == 0 ){ printf("aは偶数です。\n"); } else { printf("aは奇数です。\n"); }
複合文 if (条件式) { 文1; 文2; : 文N; } else 文M; { と } で囲む { と } で囲む
if 文 例 #include<stdio.h> void main() { int a1,a2,b,c; printf("整数1を入力してください"); scanf("%d",&a1); printf("整数2を入力してください"); scanf("%d",&a2); if ( a1%a2 == 0 ) { b = a1/a2; printf("%d÷%d=%d \n", a1, a2, b); } else { c = a1%a2; b = (a1-c)/a2; printf("%d÷%d=%d ... %d\n", a1,a2,b,c); }
if 文が続く場合 #include<stdio.h> void main() { int a; printf("整数1を入力してください"); scanf("%d",&a); if ( a%2 == 0 ){ printf("2の倍数です。 \n"); }else if ( a%3 == 0 ){ printf("3の倍数です。\n"); }else{ printf("2の倍数でも3の倍数でもありません。\n"); }
if 文の中に if 文 #include<stdio.h> void main() { int a; printf("整数1を入力してください"); scanf("%d",&a); if ( a%2 == 0 ) { if ( a%3 == 0 ){ printf("6の倍数です。 \n"); }else{ printf ("2の倍数です。 \n"); } } else if ( a%3 == 0 ) { if ( a%5 == 0 ){ printf("15の倍数です。\n"); printf("3の倍数です。\n");
論理和 論理積 否定 演算子 内容 ( (条件式A) && (条件式B) ) 条件式Aが真、 かつ 条件式Bが真 論理和 論理積 否定 演算子 内容 ( (条件式A) && (条件式B) ) 条件式Aが真、 かつ 条件式Bが真 ( (条件式A) || (条件式B) ) 条件式Aが真、 または !(条件式A) 条件式Aが真なら偽 条件式Aが偽なら真
論理和 論理積 例 #include<stdio.h> void main() { int a; printf(“整数を入力してください”); scanf(“%d”,&a); if ( (a >= 10 ) && ( a <= 20) ){ printf(“10以上20以下です。 \n”); } #include<stdio.h> void main() { int a; printf(“整数を入力してください”); scanf(“%d”,&a); if ( (a >= 10) || ( a <= -10 )){ printf(“aの絶対値は10以上です。 \n”); }
否定 例 #include<stdio.h> void main() { int a; printf(“整数を入力してください”); scanf(“%d”,&a); if ( !(a%2==0) ){ printf(“2の倍数ではありません。 \n”); }
問題 どんな値のときにYes? int a; : if ( !( (a>20) || (a<10) ) ){ printf(“Yes!”); } else { printf(“No!”); } if ( !( ( a%2==0 ) && !(a%3==0) ) ){
C言語で0は偽,0以外は真を表す 真の時は1を使うのがお約束 if(0)→偽 if(1)→真