質問: C言語の質問です。 この書き方は間違っていますか?スイッチの式をcaseの中で変えるのです。 breakがあるので問題ないと思うのですが。 int x;
回答: switch()の内部で、評価する変数を書き換えるのは『バグの素』なのでNGです。 switch()は、一つの変数(関数の戻り値なども含む)を評価するものであり、その変数の値を変更したり、複数の変数の評価をする場合にはif()を使用します。また、switch()入れ子にしたりcase : ~ break;のスペースに長々と処理を書かないようにしましょう。 1年後に自分自身でプログラムをみて、何が書いてあるのか判読困難なのは最低です。 またGoToキャンペーンではありませんが、if()を何重にも入れ子にするより、goto文で後方に飛ばしたほうが、遥かにプログラムが読みやすくなります。