パスワードを忘れた? アカウント作成
14267508 journal
日記

yumeの日記: C#学習 5

日記 by yume

寝る前に少し。コメントありがとうございます。

Microsoft Learn 『C# で数値に基本的操作を実行する 』

●はじめに
●演算 - 単純な加算と暗黙的なデータ型変換
・string変数とint変数を+でつなぐと、int変数をstringとして解釈して計算する。
Console.WriteLine(4 + "mojiretu" + 4 + 4 + 4); // == 4mojiretu444
・かっこでくくれば、当然そこが先に計算される。でもこういう使い方は避けた方がよい。
Console.WriteLine(4 + "mojiretu" + (4 + 4) + 4); // == 4mojiretu84
>「+」は、文字列に対しては「文字列同士を連結する」で、数値に対しては「加算する」で、それぞれ意味するところは違うけど、式に文字列が並んでるなら「文字列連結」を優先するために、数値も文字列として解釈するということか。
●演習 - 算術演算子
・+-*/。intの割り算は、商を返す(余り切り捨て)。C++と同じ。
・Decimal型の割り算では、商がdecimalであり、かつ割り算の右左辺の少なくとも一方がdecimalでないといけない。
>納める変数がdecimal型で、割り算のどこかにdecimalが混ざってればok
>式の右左辺どっちもintだと、当然int割り算の結果が返る。
decimal d1 = 7 / 2; // == 3(intの 7 / 2の結果(商)がd1に納まる)
decimal d1 = 7 / 2 / 2.0m; // == 1.5(全部小数割り算なら1.75だが、7/2が整数割り算なので商の3が返り、その3を2.0mで割っても1.5mになってしまう)
・int同士を小数除算したいなら、式の中でキャストすればいい
int first = 7;
int second = 5;
decimal quotient = (decimal)first / (decimal)second; // == 1.4
・剰余算は%。C++と同じ。
・計算順序はかっこ、指数、掛け算割り算、足し算引き算。ただしC#には指数演算子はない
●演習 - 値のインクリメントとデクリメント
>基本的にはC++と同じか
・++、--は変数の前に置くこともできる(++val)。val++と比べると、前置する場合はインクリメントしてから値を呼び出す。
int value = 1;
Console.WriteLine(value++); // == 1 ++する前のvalueを出力している。
Console.WriteLine(++value); // == 3 上の行で++されたvalue(2)をさらに++してから出力する。
>わかりやすい式に直すと……
int value = 1;
Console.WriteLine(value); // == 1;
value = value + 1; // == 2。ただし出力してない。
Console.WriteLine(value = value + 1); // == 3;
>この、後置インクリメントの挙動は予想外だった。まぁ他の式の上でインクリメントしたことがなかったけど。変数を+1したいなら、それだけで単独した行を書いた方が自分にはわかりやすい。
●課題
int fahrenheit = 94;
decimal celsius = (fahrenheit - 32) * (5.0m / 9.0m);
Console.WriteLine("The temperature is {0} Celsius." , celsius);
●知識チェック
>問題なし

typodupeerror

吾輩はリファレンスである。名前はまだ無い -- perlの中の人

読み込み中...