C#
1int a=10, b=20; 2Console.WriteLine(a+ "+" +b+ "=" +(a+b));
C#初心者なのですがこの書き方は正しいですか?
どこにスペースいれるべきかイマイチわかりません。
また、+が沢山あり混乱します。どの+がどういった意味か教えて頂きたいです。
よろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答4件
0
ベストアンサー
C#
1Console.WriteLine(a+ "+" +b+ "=" +(a+b));
正しいですが、その通りややこしいので今はこういう書き方は主流ではありません。
次のように書きます。
C#
1Console.WriteLine($"{a}+{b}={a+b}");
元のソースでスペースは見やすさのために入れているので、あってもなくても構いません。
また + は文字列同士の連結をする演算子で、"+" は + という文字そのものを表す文字列です。
###追記
- は文字列同士の連結をする演算子と書きましたが、正確にはオブジェクト同士の加算をする演算子です。
何を持って加算とするかはそのオブジェクトによります。
たとえば文字列同士なら連結になりますし、数値同士ならそのまま足し算になります。
文字列と文字列でないオブジェクトを加算した場合にはどちらも文字列に直してから連結されることが多いですが、そうでない演算が定義されていることもあります。
投稿2018/09/08 00:37
編集2018/09/08 00:48総合スコア28673
0
+が沢山あり混乱します。どの+がどういった意味か教えて頂きたいです。
まず MSDN ライブラリを読みましょう。
と言っても探せないかもしれませんので、とりあえず「+ 演算子 (C# リファレンス)」からの抜粋を貼っておきます。
"+ 演算子は、単項演算子または二項演算子として機能します"
"単項 + 演算子は、すべての数値型に対してあらかじめ定義されています。数値型での単項 + 演算の結果は、単にオペランドの値になります"
"二項 + 演算子は、数値型と文字列型に対してあらかじめ定義されています。数値型の場合、+ は 2 つのオペランドの合計を計算します。オペランドの片方または両方が文字列型の場合は、オペランドの文字列表現が連結されます"
ライブラリのサンプルコード
class Plus { static void Main() { Console.WriteLine(+5); // unary plus Console.WriteLine(5 + 5); // addition Console.WriteLine(5 + .5); // addition Console.WriteLine("5" + "5"); // string concatenation Console.WriteLine(5.0 + "5"); // string concatenation // note automatic conversion from double to string } } /* Output: 5 10 5.5 55 55 */
上の通り分かりやすく書いてあります。次回は是非自分で探して読んでから質問することをお勧めします。その上で(ライブラリを読んでも分からない場合は)、何が分からないかを明確にして質問してください。
投稿2018/09/08 00:42
編集2018/09/08 03:31
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

0
この書き方は正しいですか?
ただしいです。
どこにスペースいれるべきかイマイチわかりません。
入れるべきところに決まりはありません。
基本的には見やすいように入れればよいです。
+が沢山あり混乱します。どの+がどういった意味か教えて頂きたいです。
スペースは実行に関係ないので、スペース以外を分解すると以下となります
- a <= 変数(中身は10
-
-
<= +演算子
-
- "+" <= 文字(中身は+)
-
-
<= +演算子
-
- b <= 変数(中身は20
-
-
<= +演算子
-
- "=" <= 文字(中身は=)
-
-
<= +演算子
-
- (a+b) <= 変数a+変数bなので(10+20) = 30
(数字) (+演算子) (文字)の結果は文字になるという仕様があるので
たとえば a+"+"の結果は "10+" という文字になります
それを踏まえて、上から順に実行すると
"10+20=30"という文字が求まります。
よって、Console.WriteLine(a+ "+" +b+ "=" +(a+b));
はConsole.WriteLine("10+20=30");という事になります
投稿2018/09/08 02:44

退会済みユーザー
総合スコア0
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/08 00:54
2018/09/08 05:33
2018/09/08 05:43
2018/09/08 09:31 編集