「C言語/制御文」の版間の差分
削除された内容 追加された内容
標準ライブラリ関数を「命令」としていたので「関数」に訂正(JISX3010で命令としていないことを確認)。 |
|||
13 行
のように記述される。
C言語では、「もし変数aが4だったら、変数gには15を代入しなさい。」のように、条件分岐は
条件が満たされる場合のことを'''真'''(しん)という。条件が満たされない場合のことを'''偽'''(ぎ)という。
167 行
if文には、if形式、if-else形式の2通りの形式があり、またそれらを組み合わせてもよい。
なお、WindowsのVisual C系のコンパイラではscanfが使えなく、上記のコードのままではエラーになるので、かわりにscanf_sという
<syntaxhighlight lang="cpp">
232 行
</syntaxhighlight>
WindowsのVisual C系コンパイラでは、scanfが利用できないので上記のコードはエラーになり利用できません。Visual C では、代わりに scanf_s という
<syntaxhighlight lang="cpp">
352 行
たとえば
:
:
:
:
(以下略)
364 行
(イメージ)
switch(a)
case 1: 命令文m1 ; break ;
case 2: 命令文m2 ; break ;
case 3: 命令文m3 ; break ;
case 4: 命令文m4 ; break ;
(以下略)
まず、実行したい
パソコンがswitch文に遭遇したときに、どのcaseに移動するかを決めます。
384 行
switch
:case 1: 命令文m1 ;
:case 2: 命令文m2 ;
:case 3: 命令文m3 ;
:case 4: 命令文m4 ;
(以下略)
というコードなら、もしa=2なら、実行されるのは、命令文m2だけでなく、さらに命令文m3や命令文m4も実行してしまいます。
このような仕組み(つまりbreak文がないかぎり、次の
399 行
単に、昔のC言語の開発者が、こういう仕組みで作ったままのものが、いまだに残っているだけです。
ですから、ほかのプログラム言語では、switch文においてフォールスルー的な動作が廃止されている場合もあります。たとえばグーグルの開発した「Go言語」というプログラム言語では、原則的にフォールスルーは行わないようになっており、例外的に現在実行中のcaseの下にある次のcaseを実行したい場合にだけ「fallthrough」という
ともかく、C言語のフォールスルーを原則とする仕組みは、単なるローカル・ルールですので、悩む必要はありません。
|