私は恐れてこれはできません。章、C11
§6.8.4.2
各case
ラベルの表現を引用することは整数定数式でなければならず、同じswitch
文の内の2つのケース の定数式は、変換後に同じ値 を持たなければなりません。 [....]
したがって、case
のラベル式は実行時に生成される値に依存できません。
あなたは、あなたが
gcc
拡張子を使用して[OK]をしている場合、あなたは
case-range syntaxを使用することができ、そうでない場合
switch(at){
case 1:
case 2:
case 3:
case 4:
printf("Average Time Taken (Hrs)\n%d.0",at);
printf("Your Salary is Rs.%d",pj*1500 + 5000);
break;
//some other case
のようなもの、欲しいものを達成するためのフォールスルーの構文を使用することができます
、
のようなもの
switch(at){
case 1 ... 4:
printf("Average Time Taken (Hrs)\n%d.0",at);
printf("Your Salary is Rs.%d",pj*1500 + 5000);
break;
いいえ、不可能です。これはナンセンスです。これがコンパイルされると思った本を焼く。代わりに何を使うかについては – StoryTeller
です: 'if'ステートメント。 –
@StoryTellerそれは可能ではありませんが、実際には意味があります。なぜなら、スイッチ内に式を入れることができればいいのです。 –