- ベストアンサー
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);ですよね? こういうやり方もあるって意味なんですかね? それとも、何か特別な意味があるのでしょうか? 教えて下さい。よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
int n = strInput[0] - '0'; intに変換しているだけですね 奥に深い意味無く簡単に変換できるのでそのように書いているだけだと思います。 strInput[0]が'3'だと33Hなのでそこから'0'(30H)を引いて 3Hを計算しているだけです
その他の回答 (1)
- koko_u_
- ベストアンサー率18% (459/2509)
>これはint型に直してるってことでしょうか? そうです。C 言語出身のヒトだとそんなん書きそう。 >でも、普通int型にするなら、 >int n = int.Parse(strInput);ですよね? そっちの方が良いと思います。
お礼
回答ありがとうございます! 急にこの書き方出てきたので焦りましたが おかげでスッキリしました。 ありがとうございました。
お礼
ありがとうございます!! 丁寧に教えて頂き、助かりました! おかげで安心しました!