2016-08-02 9 views
0

コード全体をコピー&ペーストするのではなく、デフォルトでケースを参照できますか?例えばC#スイッチでは、デフォルトでケースを使用できますか?

switch(n) 
{ 
    case(1): //code here... 
     break; 
    case(2): //code here... 
     break; 
    case(3): //code here... 
     break; 
    default: case(2); 
     break; 
} 
+2

いいえ、できません。どうしてあなたは 'case(2)'を削除してコードを 'default'に入れませんか?すべてのオプションを 'case 'としてリストする必要はありません。 –

答えて

1

あなたはdefaultた場合に任意のコードをお持ちでない場合は、単にケース2を省略することができ、他の回答が言うように、デフォルトにそのコードを移動します。

ケース2に移行する前にdefaultケースで実行する必要があるコードがある場合は、gotoを使用できます。 intを使用した例は次のとおりです。

int n = 5; 
switch(n) 
{ 
    case 1: //code here... 
     break; 
    case 2: //code here... 
     break; 
    case 3: //code here... 
     break; 
    default: 
     //some code 
     goto case 2; 
} 
+2

ああ、神様。 [決して 'goto'を使用しない](http://stackoverflow.com/questions/11906056/goto-is-this-bad) – FrankerZ

+0

これは正解です。これがC#にgoto文が存在する理由です。 –

+0

@DanielFuchs 2の大文字小文字がデフォルトと同じであれば、いいえ、これを行う理由はまったくありません。とにかく疫病のように避けるべきです。 – Nyerguds

7

だけdefault続く、最後に第二にそれを置く:

switch(n) 
{ 
    case(1): //code here... 
     break; 
    case(3): //code here... 
     break; 
    case(2): 
    default: //code here... 
     break; 
} 

それとも単に、それを全く含みません。そのケースがヒットしなかった場合は、それはデフォルトに戻ります。

+0

ああ、ええ。私は働くには少し早すぎるかもしれない.. – lenny

3

このようにすることができます。大文字と小文字の区別がない場合はdefaultに送られます。

case(2): 
default: //code here... 
    break; 
0

このような何かを行うに

switch(n) 
{ 
    case(1): //code here... 
     break; 
    case(3): //code here... 
     break; 
    default: 
     break; 
} 

の必要はありません:

switch(n) 
{ 
    case(1): //code here... 
     break; 
    case(3): //code here... 
     break; 
    case(2): 
    default: 
     break; 
} 
0

を使用すると、ケース2にデフォルトを参照したい場合は、その後、すべてのケース2をケース2を省略することができるはずケースのデフォルトにジャンプします。

switch(n) 
{ 
    case(1): //code here... 
     break; 

    case(3): //code here... 
     break; 

    default: //case 2 should jump to this section because its not listed in your switch-cases 
     break; 
} 
関連する問題