2012-04-12 46 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。

希望有帮助!