このコードが "期待どおり"に動作しないことがわかりました。ただ、このコードですぐに見て、我々は、戻り値は1であるべきだと思うが、実行には3コンパイラエラーを生成しないスイッチで不正な複数のケース
// incorrect
variable = 1;
switch (variable)
{
case 1, 2:
return 1;
case 3, 4:
return 2;
default:
return 3;
}
リターンを返し、これを行うには、いくつかの適切なオプションがあります
// correct 1
variable = 1;
switch (variable)
{
case 1: case 2:
return 1;
case 3: case 4:
return 2;
default:
return 3;
}
かこれは部分的に私がMultiple Cases in Switch:
になり答えている
// correct 2
switch (variable)
{
case 1:
case 2:
return 1;
case 3:
case 4:
return 2;
default:
return 3;
}
(少なくともBorland C++コンパイラでは)間違ったフォームがエラーや警告なしにコンパイルされる理由を知りたいのです。
コンパイラはこのコードで何を理解していますか?
の価値を持っているという事実に
case 2:
に等しい[コンマ演算子のしくみを教えてください](のhttp://のstackoverflow。 com/questions/54142/how-does-the-comma-operator-work) –