• ベストアンサー

C# 猫でもわかる・・・ のプログラムで質問です。

猫でもわかる・・・のページでC#の勉強させてもらってるのですが、 解らないところが出たので教えてください。 using System; class dowhle01 { public static void Main() { Console.Write("数字を入力してください(1-9) --- "); string strInput = Console.ReadLine(); if (strInput.Length >= 2) return; if (!char.IsDigit(strInput[0]) || strInput[0] == '0') return; int n = strInput[0] - '0'; string mystr = ""; int i = 1, sum = 0; do { sum += i; mystr += string.Format("{0} + ", i); i++; } while (i <= n); char[] trimchar = new char[] { '+', ' ' }; mystr = mystr.TrimEnd(trimchar); mystr += " = "; mystr += sum; Console.WriteLine(mystr); } } このプログラムの中の int n = strInput[0] - '0'; この部分なんですけど、 これはint型に直してるってことでしょうか? でも、普通int型にするなら、 int n = int.Parse(strInput);ですよね? こういうやり方もあるって意味なんですかね? それとも、何か特別な意味があるのでしょうか? 教えて下さい。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

int n = strInput[0] - '0'; intに変換しているだけですね 奥に深い意味無く簡単に変換できるのでそのように書いているだけだと思います。 strInput[0]が'3'だと33Hなのでそこから'0'(30H)を引いて 3Hを計算しているだけです

pen123
質問者

お礼

ありがとうございます!! 丁寧に教えて頂き、助かりました! おかげで安心しました!

その他の回答 (1)

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.2

>これはint型に直してるってことでしょうか? そうです。C 言語出身のヒトだとそんなん書きそう。 >でも、普通int型にするなら、 >int n = int.Parse(strInput);ですよね? そっちの方が良いと思います。

pen123
質問者

お礼

回答ありがとうございます! 急にこの書き方出てきたので焦りましたが おかげでスッキリしました。 ありがとうございました。