2012-04-12 43 views
-5

我對這個C#代碼片段有些困惑。有人可以解釋以下事情嗎?C#整數這是什麼輸出?

int i = 5; 

i = i + 6; 
+1

爲什麼?你不明白什麼? – SLaks 2012-04-12 14:11:31

+1

你在找什麼困惑?你爲什麼不編譯它來檢查? – Oded 2012-04-12 14:11:37

+0

作業?如果是這樣,請適當標記。 – J0HN 2012-04-12 14:14:01

回答

4

創建具有命名的5值i的整數變量,然後添加6到它,導致:

11 
11
int i = 5; // sets the variable i to the value of 5. (i = 5) 
i = i + 6; // sets the variable i equal to itself plus 6. (i = 5 + 6) 

因此I = 11 (5 + 6)

2
int i = 5; 

創建一個整數i並將其值設置爲5.

i = i + 6; 

將i的值設定爲I + 6(11在這種情況下)

5
int i = 5; 

創建一個名爲i存儲整數變量,並給它的初始值5

i = i + 6; 

i:修改要的i + 6值。通過記住賦值運算符=右側的所有內容在分配發生之前進行評估的規則,可以避免混淆。因此,使用先前的值i,即5。所以在運行時,代碼變得

i = 5 + 6; 

等於是i具有價值11

+5

我注意到,在分配發生之前,運算符的*兩側*上的所有內容都被評估,而不僅僅是右側的所有內容。首先評估左側,然後評估右側,然後進行分配。 – 2012-04-12 14:39:52

2

=意味着分配,而不是等於

int i = 5; // Means "put 5 in variable i" 
i = i + 6; // Means "get the value in i, add 6 to it and put the result back in i" 
2

這裏的瘦,一行行。

int i = 5; 

分配被稱爲「I」與值5

i = i + 6; 

一個基本整數變量在此行中的代碼評估什麼就=右側第一,嘗試之前獲取值分配它。因此,i + 6成爲5 + 6,即11。然後,原始變量「i」被分配新計算的值11。

希望有幫助!