見出し画像

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 が増えれば増えるほど、毎回頭抱えるし…。

自分でも分かってるけど、めちゃくちゃ気持ち悪い覚え方だな。
もっとスマートに感覚で覚えれるようになりたい。

もう今日は眠いし、頭も重くなってきたから寝よう。
今日は覚えていても、明日になったら忘れてるはず。
その時は、これを見返して叩き込もう。

ここまで読んで頂きありがとうございました。
これからもどうかよろしくお願いいたします。

いいなと思ったら応援しよう!