スポンサーリンク
※サイト運営にサーバーは必須です※
 ~ ロリポップ! 
はコスパのよい初心者向けサーバーです~
   
![]()
switch文とは
switch文は条件の分岐のために使用します。
選択肢によって、処理が分岐する場合によくswitch文が使用されます。
switch (評価する式)
 {
  case 値1:
   文(処理A);
   break;
     case 値2:
   文(処理B);
   break;
     default:
   文(処理C);
   break;
 }
評価する式と値1が等しければ(評価する式==値1がtrueであれば)、処理Aが実行されます。
評価する式と値2が等しければ(評価する式==値2がtrueであれば)、処理Bが実行されます。
いずれの場合にも当てはまらない場合は、処理Cが実行されます(default~break)。
| 
					 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  | 
						using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Switch01 {     class Program     {         static void Main(string[] args)         {             Console.WriteLine("あなたの血液型を教えてください(1~4の数字)");             Console.WriteLine("  1:A型");             Console.WriteLine("  2:B型");             Console.WriteLine("  3:AB型");             Console.WriteLine("  4:O型");             int bloodtype_number = int.Parse(Console.ReadLine());             switch (bloodtype_number)             {                 case 1:                     Console.WriteLine("あなたの血液型はA型ですね");                     break;                 case 2:                     Console.WriteLine("あなたの血液型はB型ですね");                     break;                 case 3:                     Console.WriteLine("あなたの血液型はAB型ですね");                     break;                 case 4:                     Console.WriteLine("あなたの血液型はO型ですね");                     break;                 default:                     Console.WriteLine("1~4の数字を指定してください");                     break;             }         }     } }  | 
					
3と入力した場合の実行結果
あなたの血液型を教えてください(1~4の数字)
 1:A型
 2:B型
 3:AB型
 4:O型
 3
 あなたの血液型はAB型ですね
switch文で書ける処理は、if文を使って書くことが基本的に可能です。
しかし、上のようなコードをif文で書こうとするとelse ifが何度も続く、わかりづらいコードになります。
このように、値の違いによって、処理が何パターンにも分かれる時に有用です。
※注意すべきポイント
caseの最後は「:」(コロン)で区切ります。「;」(カンマ)ではありません。
caseを書いたら、必ずそれに対応したbreak文を書く必要があります。(C言語やC++言語では可能なフォールスルーがC#では許されません)
default~breakは必ず書かないといけないものではありません。
case値1:とcase値2:で処理が同じ場合には以下のように書くことも可能です。
switch (評価する式)
 {
  case 値1:
  case 値2:
   文(処理A);
   break;
     default:
   文(処理B);
   break;
 }
| 
					 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  | 
						using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Switch02 {     class Program     {         static void Main(string[] args)         {             Console.WriteLine("以下の選択肢の内、正しいものを1つ選びなさい(1~4)");             Console.WriteLine("1:最も小さな完全数は28");//6が最小の完全数なので間違い             Console.WriteLine("2:2は素数ではない");//2は素数なので間違い             Console.WriteLine("3:8バイトは1ビットに等しい");//逆。1バイトが8ビットに等しいので、間違い             Console.WriteLine("4:2の10乗は1000より大きい");//1024は1000より大きいので正しい             int select_number = int.Parse(Console.ReadLine());             switch (select_number)             {                 case 1:                 case 2:                 case 3:                     Console.WriteLine("不正解");                     break;                 case 4:                     Console.WriteLine("正解");                     break;             }         }     } }  | 
					
2と入力した場合の実行結果
以下の選択肢の内、正しいものを1つ選びなさい(1~4)
 1:最も小さな完全数は28
 2:2は素数ではない
 3:8バイトは1ビットに等しい
 4:2の10乗は1000より大きい
 2
 不正解
関連記事
~ギャンブルに絶対儲かる必勝法があるのだろうか?~
私(サイト主)はこの疑問に対して非常に興味を持ち、プログラミングで検証してみました。
このサイトを応援してもいいかなと思う人はぜひとも購入を検討してみてください。
