1: 2009-11-18 (水) 11:43:58 sho | 2: 2009-11-18 (水) 14:27:18 sho | ||
---|---|---|---|
Line 1: | Line 1: | ||
*C言語の基礎 [#z5920a7e] | *C言語の基礎 [#z5920a7e] | ||
+ | **制御文 [#b3400d86] | ||
+ | ***if文 [#c6144380] | ||
+ | if文は「もし○○だったら△△する。それ以外だったら□□する」というような、条件によって実行することを分けるときに使います。 | ||
+ | #ref(if1.png,100%) | ||
+ | 「もし○○だったら△△する」というif文です。~ | ||
- | **if文 [#c6144380] | + | ()内の条件が成り立っている時は{}内の処理を実行します。成り立っていない時は何もしません。 |
+ | main() { | ||
+ | int a =10; | ||
- | if文は「もし○○だったら△△して、それ以外は□□する」というような、条件によって実行することを分けるときに使います。 | + | if (a > 5) { |
- | #ref(programing1.png,100%) | + | a = a - 1; |
+ | } | ||
+ | } | ||
+ | もし変数aが5より大きかったらaから1引くというプログラムです。 | ||
+ | ---- | ||
+ | #ref(if2.png,100%) | ||
+ | 「もし○○だったら△△する。それ以外だったら□□する」というif文です。~ | ||
+ | |||
+ | ()内の条件が成り立っている時はその直後の{}内の処理を実行し、成り立っていない時はelse後の{}内の処理を実行します。 | ||
+ | main() { | ||
+ | int a =10; | ||
+ | |||
+ | if (a > 5) { | ||
+ | a = a - 1; | ||
+ | } | ||
+ | else { | ||
+ | a = a + 1; | ||
+ | } | ||
+ | } | ||
+ | もし変数aが5より大きかったらaから1引いて、それ以外(aが5以下)なら1足すというプログラムです。 | ||
+ | ---- | ||
+ | #ref(if3.png,100%) | ||
+ | 「もし○○だったら△△する、それ以外でもし●●だったら□□する、更にそれ以外は■■する」というif文です。~ | ||
+ | |||
+ | 最初のifの()内の条件が成り立っている時はその直後の{}内の処理を実行し、成り立っていない時は次のelse ifへ行きます。else ifの()内の条件が成り立っている時はその直後の{}内の処理を実行し、成り立っていない時はelse後の{}内の処理を実行します。 | ||
+ | main() { | ||
+ | int a =10; | ||
+ | |||
+ | if (a > 5) { | ||
+ | a = a - 1; | ||
+ | } | ||
+ | else if (a < 0) { | ||
+ | a = 0; | ||
+ | } | ||
+ | else { | ||
+ | a = a + 1; | ||
+ | } | ||
+ | } | ||
+ | もし変数aが5より大きかったらaから1引いて、それ以外(aが5以下)でaが0より小さかったらaに0を代入して、更にそれ以外(aは0以上,5以下)ならaに1足すというプログラムです。 | ||
+ | |||
+ | ***for文 [#l1911408] | ||
+ | 同じ処理を繰り返す時に使います。通常はカウンタを使って繰り返す回数を決めます。 | ||
+ | #ref(for1.png,100%) | ||
+ | 「iの初期値を0とし、iが5より小さい間は処理を繰り返す。ただし処理を1回行ったらiを1増やす。」というfor文です。~ | ||
+ | |||
+ | 事前にカウンタを変数として宣言しておきます。 | ||
+ | 処理を行うごとにカウンタが0,1,2,3,4と増え5になったら繰返しを止めます。~ | ||
+ | i++はi=i+1と同じ意味です。 | ||
+ | main() { | ||
+ | int i, a = 1; | ||
+ | |||
+ | for (i = 0; i < 5; i++) { | ||
+ | a = a * 3; | ||
+ | } | ||
+ | } | ||
+ | a×3を5回繰り返す(3の5乗を計算する)プログラムです。 | ||
+ | |||
+ | ***while文 [#of5e8829] | ||
+ | 同じ処理を繰り返す時に使います。for文との違いは、繰り返す回数が決まっていない時に使うということです。 | ||
+ | #ref(while1.png,100%) | ||
+ | ()内の条件が成り立っている間は処理を繰り返し実行し、条件が成り立たなくなったら繰返しを止めます。 | ||
+ | main() { | ||
+ | int i; | ||
+ | |||
+ | while (i < 1000) { | ||
+ | i = i * 2; | ||
+ | } | ||
+ | } | ||
+ | i×2を繰り返し、iが1000より少ない状態でなくなったら(1000以上になったら)繰り返しを止めるというプログラムです。 | ||
+ | |||
+ | ***switch文 [#x577fb19] | ||
+ | 変数や式の値によって処理を分けるときに使用します。 | ||
+ | #ref(switch1.png,100%) | ||
+ | 「変数・式が値1なら処理Aを実行、値2なら処理Bを実行、どれにも当てはまらなければ処理Cを実行する」というswitch文です。~ | ||
+ | |||
+ | switch文の()内の変数又は式の値がcaseの後の値と同じならその直後の処理を行います。処理後はbreak;を書きましょう。忘れるとそのまま次の処理も行ってしまいます。defaultはどれにも当てはまらない場合です。 | ||
+ | main() { | ||
+ | char c = '+'; | ||
+ | int a, m = 5, n = 3; | ||
+ | |||
+ | switch(c) { | ||
+ | case '+': | ||
+ | a = m + n; | ||
+ | break; | ||
+ | case '-': | ||
+ | a = m - n; | ||
+ | break; | ||
+ | default: | ||
+ | a = 0; | ||
+ | } | ||
+ | } | ||
+ | cが+ならmとnをたしてaに代入、cが-ならmからnを引いてaに代入、それ以外ならaに0を代入するというプログラムです。 |