
if文とint.TryParseで早速頭抱えた。
思い立ったが吉日。
早速、C#の基礎を学び始めてみた。
条件分岐と文字列を整数に変換
頭抱えました。
昔、Cで似たようなことやったなあと思いつつ、思考を巡らせていたけど
1日で理解出来た!なんてなるはずもないと思い記事にしました。
int.TryParse()の使用(例外処理)
Console.ReadLine()で受け取った文字列を整数に変換する際に
整数以外の文字列が入った場合、nullを戻り値としてエラーを吐くのを防ぐために
static void Main(){
Console.WriteLine("0~100の数値を入力してください。");
string input = Console.ReadLine(); // 文字列として入力を受け取る
int s;
// 例外処理
if (int.TryParse(input, out s))
{
if (s < 0 || s > 100) {
Console.WriteLine("数値は0~100の間で入力してください。");
}
else if (s > 0 || s > 100) {
Console.WriteLine($"入力された数値は0~100の間で、数値は{s}です。");
} else {
Console.WriteLine("正しい数値を入力してください。(例:75)");
}
}
少ししか理解出来てないけど、
string input = Console.ReadLine();
Console.ReadLine();で受け取った文字列をstring型のinputに放り込む。
(int.TryParse(input, out s))
int.TryParseメソッドを使用して、inputに入ってる文字列が整数に変換出来るか試みる。
変換出来れば、int型で宣言してるsに代入される。
で、合ってるかな?間違ってそうだけども…。
とりあえず、今の認識で合ってると思っておこう。
if文も怪しいから復習として
Cやってた時でもif文に自信なかったんだよなあ。
if (条件式) { } else if (条件式) { } else { }
で合ってるかな?
自分の覚え方、凄く変だと思うけど
if (もしこれが当てはまったなら次の動作を行う)
{
Console.WriteLine("当てはまってる!");
} else if (1個前のが当てはまってなくて、これが当てはまってるなら)
{
Console.WriteLine("1個前のは当てはまらんかったけど、今回は当てはまってるぞ!");
} else (どれも当てはまってないなら)
{
Console.WriteLine("何も当てはまっとらん!!!");
}
みたいな覚え方してる。
else if、脱出ゲームで多用するかは分からないけど、普通にゲーム製作するなら条件分岐とか沢山出てくるんだろうな…吐き気する。
else if が増えれば増えるほど、毎回頭抱えるし…。
自分でも分かってるけど、めちゃくちゃ気持ち悪い覚え方だな。
もっとスマートに感覚で覚えれるようになりたい。
もう今日は眠いし、頭も重くなってきたから寝よう。
今日は覚えていても、明日になったら忘れてるはず。
その時は、これを見返して叩き込もう。
ここまで読んで頂きありがとうございました。
これからもどうかよろしくお願いいたします。