2016-09-07 7 views
0

以下のアルゴリズムがではないと等しい場合がありますか?* =解決後の理由+

int var1 = 2; 
int var2 = 5; 
int var3 = 7; 

// Scenario 1 
var1 *= var2 + var3; // <-- 24 

// Scenario 2 
var1 = 2; 
var1 *= (var2 + var3); // <-- 24 

msdn site状態は次ので、私が尋ねる理由は次のとおりです。

これらの演算子は、次のセクションと前のセクションよりも低い優先順位よりも高い優先順位を持っています。

しかし、私のテストから、これは決してそうは思われませんか?括弧がなくても、かっこがあるかのように解決されるようです。

私はアルゴリズムに等しいだろうと思ったのでしょう。だから何がMSDNサイトによって意味されるとどのような場合には、その文が真である

// Scenario 1 
var1 = var1 * var2 + var3; // <-- 17 

//Scenario 2 
var1 = var1 * (var2 + var3); // <-- 24 


?テストのための

C#のフィドル:

https://dotnetfiddle.net/Yt5ZBO

+3

バイナリ演算子 '* ='の方が、バイナリ演算子 '+'よりも優先順位が低くなります。 – zerkms

+0

@zerkms msdnサイトが間違っていますか?または私はここで何かを忘れていますか? – Zze

+1

間違っていません。それはなぜです? – zerkms

答えて

4

だから何がMSDNサイトによって意味されるとどのような場合には、その文が本当ですか?

これは、セクションが高い優先順位から低い優先順位に並べられていることを意味します。そのリスト*=オペレータで

は(それが単一の操作者とその優先順位が=又は*のいずれかの優先順位とは関係を持たない)バイナリ+演算子よりも低い優先順位を有します。

したがって、+が最初に評価されます。

+0

私は間違いを犯しました。**加算演算子**セクションではなく**算術オーバーフロー**セクションを見ていました。 * whoops * – Zze

0

これらの演算子は、次のセクションよりも高い優先順位を持っている(+、 - 、*、/)

あなたは(間違って)この引用に(+, -, *, /)を追加して、どのようなことが実際に言うことである:

これらの演算子は、次のセクションよりも優先順位が高く、前のセクションよりも優先順位が低くなります。

+セクションであるので、より高い優先順位を有しています。

+0

oh whoops - haha​​私は引用符をつぶしてしまった – Zze

関連する問題