今日は制御文のswitch文を学んでいます。
switch文とは条件に応じて処理を分岐するもの。
構文は・・・
switch (変数名もしくは条件式)
{
case 条件 1:
条件1がtrueの時に実行するステートメント;
break;
case 条件 2:
条件2がtrueの時に実行するステートメント;
break;
case 条件 3:
条件3がtrueの時に実行するステートメント;
break;
・
・
・ default;
上記の条件に当てはまらない時に実行するステートメント;
break;
}
ここでうっかりミスをしてしまったのはbreak;を記入し忘れてしまうことでした。
break;を記述せずに次の条件を書こうとするとエラーが出ました。
「コントロールはひとつのcaseラベルから別のラベルへ流れ落ちることはできません」
何か面白い表現ですな。流れ落ちるww
この流れ落ちるのを防ぐためにもbreakが必要となってくるそうな。
いつものように自分で考えた例題は
星座を表記すると言うもの。
//switch
using System;
class CodeFile1
{
public static void Main()
{
Console.WriteLine("☆☆☆星座早見表☆☆☆");
Console.WriteLine("1:3/21~4/19");
Console.WriteLine("2:4/20~5/20");
Console.WriteLine("3:5/21~6/21");
Console.WriteLine("4:6/22~7/22");
Console.WriteLine("5:7/23~8/22");
Console.WriteLine("6:8/23~9/22");
Console.WriteLine("7:9/23~10/23");
Console.WriteLine("8:10/24~11/21");
Console.WriteLine("9:11/22~12/21");
Console.WriteLine("10:12/22~1/19");
Console.WriteLine("11:1/20~2/18");
Console.WriteLine("12:2/19~3/20");
Console.WriteLine("☆☆☆☆☆☆☆☆☆☆☆");
Console.Write("番号---");
string srHolo = Console.ReadLine();
switch (srHolo){
case "1":
Console.WriteLine("牡羊座です");
break;
case "2":
Console.WriteLine("おうし座です");
break;
case "3":
Console.WriteLine("ふたご座です");
break;
case "4":
Console.WriteLine("かに座です");
break;
case "5":
Console.WriteLine("しし座です");
case "6":
Console.WriteLine("おとめ座です");
break;
case "7":
Console.WriteLine("てんびん座です");
break;
case "8":
Console.WriteLine("さそり座です");
break;
case "9":
Console.WriteLine("いて座です");
break;
case "10":
Console.WriteLine("やぎ座です");
break;
case "11":
Console.WriteLine("みずがめ座です");
break;
case "12":
Console.WriteLine("うお座です");
break;
default:
Console.WriteLine("入力ミスです");
break;
}
}
}
例えば私は8月16日生まれなので5と入力すると、
しし座です。と返ってきます。
string srHolo = Console.ReadLine();
int nHolo = Int16.Parse(srHolo);
としてしまうと、1~12以外の文字を打つと
エラーが出てしまいます。
なので、わざわざint型に変換せずに、
文字型のままで使いました。
だからcaseの後は""がついています。
制御分を使いこなせると上手なプログラミングが出来るそうです。
うむ、頑張ろう。
私が作りたいモノも確かに制御分を使えば出来るので
チャレンジしてみます。
まだまだ分からないことだらけだけど、
コツコツやっています。
やっぱり作りたいものがあるから
続けられるのかも。私の場合は。