プログラムの制御構造 選択・繰り返し 変数と代入演算子 int a; ① a=10; ② a ? ① a 10 ② 式の定義・変数の利用(注意) • 文は必ず‘;’で終わる • 文の評価(計算)は上から下、左から右 • 式の中(代入文の左辺以外)に変数が現れると保 持値に置き換わる – 複代入文について • 代入‘=’は代入演算であって等号を意味しない int a,b; a=10; b=a; b=3; /* aの値は変化しない!*/ 変わった演算子 • 前置増・減演算子 ++,-- • 後置増・減演算子 ++,-- • 複代入演算子 +=,/=,*=,-=など • 条件演算子 式1? 式2 : 式3 – 式1がゼロでなければ式2の値、そうでなければ 式3の値 C言語での論理演算 A N D ( ) && O R ( ) || 結果は常に 0 か 1 NOT ( ) ! 真理値表 T ( 真) F ( 偽) A && B A || B A\B T F A\B T F T T F T T T F F F F T F プログラムの制御構造 • 選択 – if文 条件によって変わる変数の値が実数区間のよう に無限にある場合 b a x – switch文 条件によって変わる変数の値が高々有限個の場 合 x if文 if文 if( 制御式) 文1 el s e 文2 制御式の値が0以外の値なら文1 を実行。else 文2がある場合は、 制御式の値が0以外なら文1を 実行。そうでなければ、文2を実行 制御式は整数の値になる式であれば なんでもよいが、一般には関係演算子 と論理式の組み合わせからなる。 関係演算子 関係演算子 式1 式2 式1 >= 式2 式1 式2 式1 <= 式2 式1 < 式2 式1 < 式2 結果は全て0 か1 式1 式2 式1 > 式2 式1 式2 式1 == 式2 NOT( 式1 式2 ) 式1 ! = 式2 文の定義 文=式; {|| 式1 ; ・ ・ ・ ; 式n} 複合文( ブロ ッ ク ) ブロ ッ ク を 使う 場合は字下げ ( イ ン デン テーショ ン ) を し て、 機能ブロ ッ ク の範囲を 明確に! switch文 switch文 swtch(式 ) { 式nと 式n+1と も に case 定数式1 : 文1 br eak; 文nを 実行し たい場合には case 定数式2 : 文2 br eak; case 式n : case 式n+1 : 文n br eak; case 定数式n : 文n br e a k; def aul t : 文 } 簡単な電卓:if文を使った場合 #include <stdio.h> int main(void){ int x, y, ans; char op; scanf("%d%c%d",&x,&op,&y); if(op=='+'){ ans = x+y; } else { if(op=='-'){ ans = x-y; } else { if(op=='*') { ans = x*y; } else { if(op=='/') { ans = x/y; } else { printf(“The operator is not defined !\n"); return(0); } } } } printf(“=%d\n”,ans); } 簡単な電卓:switch文を使った例 #include <stdio.h> int main(void){ int x, y, ans; char op; scanf("%d%c%d",&x,&op,&y); switch(op) { case '+': ans = x+y; break; case '-': ans = x-y; break; case '*': ans = x*y; break; case '/': ans = x/y; break; default: printf("The operator is not defined !\n"); return(0); } printf(“=%d\n”,ans); }
© Copyright 2024 ExpyDoc