一般的(?)な書式:

すべてを展開すべてを収束
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 switch ( <popした値が0だった場合のラベル> [, <popした値が1だった場合のラベル> [, <popした値が2だった場合のラベル> [...]]]] )
 
          [<どれにも当てはまらなかった場合の処理>]
 
 <popした値が0だった場合のラベル>:
 
          [<処理>]
 
 <popした値が1だった場合のラベル>:
 
          [<処理>]
 
 <popした値が2だった場合のラベル>:
 
          [<処理>]
 
          :
          :

サンプル

すべてを展開すべてを収束
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 
 
 
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
!
.assembly test{}  
.method static void main()
{
     .entrypoint  
     .locals ( string result )  
         ldc.i4.0
     
     switch (
       _Zero,        _One,        _Two, // <-- 2
       _Three) // <-- 3
     
          ldstr "???"
     stloc result
     
     br _fin
     
     
 
     _Zero:
    ldstr "Zero"
     stloc result
 
     br _fin
 
 
     
     _One:
    ldstr "One"
     stloc result
 
     br _fin
     
 
 
     _Two:
    ldstr "Two"
     stloc result
 
     br _fin
     
 
 
    _Three:
    ldstr "Three"
     stloc result
 
 
     _fin:
     ldloc result
     call void class [mscorelib]System.Console::WriteLine(string)
 
 
     ret
 }

C#では・・・

すべてを展開すべてを収束
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
-
|
|
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
!
|
|
!
 void main(){
     string result;
     
     switch(0){
     case 0:
       result = "Zero";
       break;
     case 1:
       result = "One";
       break;
     case 2:
       result = "Two";
       break;
     case 3:
       result = "Three";
       break;
     default:
       result = "???";
       break;
     }
     
     System.Console.WriteLine( result );
 }
 

VB.NETでは・・・

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 public sub main()
     dim result as string
     
     select case 0
     case 0
       result = "Zero"
     case 1
       result = "One"
     case 2
       result = "Two"
     case 3
       result = "Three"
     case else
       result = "???"
     end select
 
     System.Console.WriteLine( result )
     
 end sub

実行結果:

 Zero

トップ 編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード 新規 一覧 単語検索 最終更新 ヘルプ 最終更新のRSS xenowire
Last-modified: 2018-01-25 (木) 15:08:34