匿名質問者

C#のChar.IsDigitについて


using System;

using System.Collections;

class array01{
public static void Main(){
bool bEnd = false;
string strData;
double sum = 0.0;

ArrayList al = new ArrayList();

while (true){
Console.Write("Data___");
strData = Console.ReadLine ();

if(!Char.IsDigit(strData[0]) && strData[0] != '-'){//←ここがわかりません
bEnd = true;

}else{
al.Add (double.Parse (strData));

}
if(bEnd){
break;
}

for(int i = 0; i< al.Count; i++){
Console.WriteLine ("Data[{0}] = {1}",i+1,al[i]);
sum +=(double)al[i];
}
int count = al.Count;
double avr = sum/count;
Console.WriteLine ("Count = {0}",count);
Console.WriteLine ("The average = {0}",avr);
}
}
}
「←ここがわかりません」と書いてある部分についてなのですが、strData[0]はなぜ急に配列のような書き方に変わっているのでしょうか?
strDataにするとエラーになってしまいます。
あと、strData[0] != '-'の部分の「-」このハイフンは何を表しているのでしょうか?

初歩的な質問ですがよろしくお願いします

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2013/03/23 18:40:07

回答2件)

匿名回答1号 No.1

「←ここがわかりません」と書いてある部分についてなのですが、strData[0]はなぜ急に配列のような書き方に変わっているのでしょうか?

それは、IsDigit の引数ひとつの場合には、char を受けるように決まってるから。
http://msdn.microsoft.com/en-us/library/7f0ddtxh.aspx

strDataにするとエラーになってしまいます。

こういうメソッドもある。
http://msdn.microsoft.com/en-us/library/0t641e58.aspx

あと、strData[0] != '-'の部分の「-」このハイフンは何を表しているのでしょうか?

それは、C# に関係なく、そのアプリの仕様の話。
空行を入力するか、'-' を入力したら足し算のループを止めたいんでしょ。

匿名回答2号 No.2

プログラムのやっていることは、ループで数値を入力させ、数字以外ならループを終了します。

そして、入力された数値の和を取っています。

わからないというところで、'-'はマイナスの場合を意味しています。

マイナスは先頭が-ですから。

それと配列にいきなりなるといいますが、.NETではstring型は配列の表記で一文字ずつアクセスできます。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません