「C言語/制御文」の版間の差分

削除された内容 追加された内容
346 行
 
=== switch文 ===
==== 基本 ====
<ref>『JISX3010:2003』p.101「6.8.4.2 switch文」</ref>
 
461 ⟶ 462行目:
 
 
;==== 発展的な話題 ====
switchの場合わけに使った変数を、それぞれのcase内で利用する事もできる。
 
やや高度だがこの変数をcase内でも使うことでたとえば下記のようにfor文などとswtich文とを組み合わせて、配列の番号ごとに代入などを出来る。
 
 
;コード例
518 ⟶ 520行目:
 
上記コードでは、forで0,1,2を巡回しているので、すべてのcaseが実行される事になる。
 
 
このようにわざわざswitch文を使って代入する事のメリットは、配列の順番を入れ替えたい場合、たとえば「野菜ジュース」と「オレンジジュース」の順番を入れ替えたい場合に、コピーペーストでコードをそのまま移動すれば終わるという長所がある。
 
いっぽう、もし配列に数字を直接入れてしまうと、たとえば
strcpy(nomimono[2].syouhinmei, "野菜ジュース");
のように、配列番号2番などとコードを入れ替えてしまうと、順番を入れ替える際に、番号を書き直す手間が発生してしまう。
 
 
上記コード例では、個々の番号のデータを名称と価格の2種類だけのデータなので、まだ入れ替えの作業数は少ないが、もし、もっとデータ種類の多いデータを扱っている場合だと、直接代入の方式のコードだと、入れ替えの負担が膨大になってしまい、事実上は入れ替えが不可能になりかねない。
 
なので、switch文などを使って、入れ替えなどの編集しやすくする事で、長所がある。
 
== 繰り返し文 ==