質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

6回答

1954閲覧

C#でソースの意味がわかりません

FujiharaK

総合スコア11

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2017/05/25 06:00

コード private void textToValue(String text, out double val) { if (double.TryParse(text, out val) == false) val = -1.0; **ボールドテキスト** }

下のコードのval = -1.0;の意味がわかりませんどういう意味ですか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答6

0

このほうが判りやすいかな?

private double textToValue(String text){
double d;
if (double.TryParse(text, out d)){
return d;
} else{
return -1;
}
}

投稿2017/05/25 09:12

107User

総合スコア78

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

その後の処理でvalが0未満だった場合エラー出力するみたいなコードが書かれているのであれば、エラー判定のためにvalに-1を入れているだけかと。

投稿2017/05/25 07:55

編集2017/05/25 07:56
King_of_Flies

総合スコア382

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

変数名valという変数に-1.0というdouble型の数値を代入しています。

「=」は左辺に右辺の値を代入
「==」は左辺と右辺の、結果もしくは値、が等しいかという判定
と覚えると良いかと

投稿2017/05/25 06:12

編集2017/05/25 06:14
RagnAnet1373

総合スコア69

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

FujiharaK

2017/05/25 06:29

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace GradeCheck { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { labelResultM.Text = "ちゃんだい"; labelResultP.Text = "たくちゃん"; labelResultE.Text = "しんちゃん"; labelCompAvgM.Text = "和樹"; labelCompAvgP.Text = "さっきーなぁ"; labelCompAvgE.Text = "組長"; } private void textBoxAttendanceM_TextChanged(object sender, EventArgs e) { } private void textBoxAttenDanceP_TextChanged(object sender, EventArgs e) { } private void textBoxScoreM_TextChanged(object sender, EventArgs e) { } private void buttonJudge_Click(object sender, EventArgs e) { //出席率を浮動小数点値に変換 double AttendanceM, AttendanceP, AttendanceE; textToValue(textBoxAttendanceM.Text, out AttendanceM); textToValue(textBoxAttendanceP.Text, out AttendanceP); textToValue(textBoxAttendanceE.Text, out AttendanceE); //点数を整数値に変換 int scoreM, scoreP, scoreE; textToValue(textBoxScoreM.Text, out scoreM); textToValue(textBoxScoreP.Text, out scoreP); textToValue(textBoxScoreE.Text, out scoreE); //点数を判定する labelResultM.Text = scoreJudge(AttendanceM, scoreM); labelResultP.Text = scoreJudge(AttendanceP, scoreP); labelResultE.Text = scoreJudge(AttendanceE, scoreE); //平均値以上か未満か判定する labelCompAvgM.Text = averageJudge(scoreM, 1); labelCompAvgP.Text = averageJudge(scoreP, 2); labelCompAvgE.Text = averageJudge(scoreE, 3); } //テキストを浮動小数点値に変換 //(仮引数) text : 変換する文字列 val : 変換した浮動小数点値 //(返却値) なし private void textToValue(String text, out double val) { if (double.TryParse(text, out val) == false) val = -1.0; } //テキストを整数値に変換 //(仮引数)text : 変換する文字列 val : 変換した整数値 //(返却値)なし private void textToValue(string text, out int val) { if (int.TryParse(text, out val) == false) val = -1; } //成績判定 //(仮引数) Attendance : 出席率 score : 得点 //(返却値) 判定結果 private string scoreJudge(double Attendance, int score) { string result; if (Attendance < 0.0 || Attendance > 100.0 || score < 0 || score > 100) result = "エラー"; else if (Attendance >= 20) { if (score >= 80) result = "アスペ"; else if (score >= 70) result = "基地外"; else if (score >= 60) result = "4級"; else result = "退席"; } else result = "退席"; return result; } //平均点判定 //(仮引数) score : 得点 subject : 科目 (1=数学 2=物理 3=英語) //(返却値) 判定結果 private string averageJudge(int score, int subject) { string result; int average; if (score < 0 || score > 100) return "エラー"; switch (subject) { case 1: average = 30; break; case 2: average = 60; break; case 3: average = 75; break; default: return "エラー"; } if (score >= average) result = "万歳"; else result = "天皇万歳"; return result; } private void buttonReset_Click(object sender, EventArgs e) { textBoxAttendanceM.Text = "0.0"; textBoxAttendanceP.Text = "0.0"; textBoxAttendanceE.Text = "0.0"; textBoxScoreM.Text = "0"; textBoxScoreP.Text = "0"; textBoxScoreE.Text = "0"; labelResultM.Text = ""; labelResultP.Text = ""; labelResultE.Text = ""; labelCompAvgM.Text = ""; labelCompAvgP.Text = ""; labelCompAvgE.Text = ""; } private void labelResultE_Click(object sender, EventArgs e) { } private void label7_Click(object sender, EventArgs e) { } private void label8_Click(object sender, EventArgs e) { } private void label6_Click(object sender, EventArgs e) { } private void textBoxAttendanceE_TextChanged(object sender, EventArgs e) { } private void textBoxScoreE_TextChanged(object sender, EventArgs e) { } private void textBoxScoreP_TextChanged(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e)     //② { } } } このプログラムになぜval = -1.0を代入しなくてならないのかわからない
RagnAnet1373

2017/05/25 06:36

その点に関しましては今回の質問から逸れてしまっていますよ。 今回の質問はあくまでも「val = -1.0;」この部分を教えてくれとのことでしたので。 その部分の質問をしたい場合は、新しく質問をして様々な人に見てもらった方が良いかと思われます。 大変申し訳ございませんが、ご理解をお願い致します。
guest

0

先のif(double.TryParse(text, out val) == false)trueだったら(パースに失敗したら)、valに-1.0を代入するという感じです。

投稿2017/05/25 06:12

Tokeiya3

総合スコア260

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

val という変数に数値 -1.0 を入れているだけです。

代入演算子
https://docs.microsoft.com/ja-jp/dotnet/articles/csharp/language-reference/operators/assignment-operator

投稿2017/05/25 06:09

x_x

総合スコア13749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

valに-1.0を代入しています。


「何をしているのか」ではなく「何故しているのか」を
知りたいんだろうなと思っていたらやっぱりそうだったっぽいので追記:

コード書いた人に聞いてください。
推測でいいなら数字じゃない文字が来たときに、
とりあえず通常ではありえない数値にしてあとでエラーにしたいんでしょう。

投稿2017/05/25 06:09

編集2017/05/25 06:45
ozwk

総合スコア13521

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問