C#很基础的问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 00:31:24
public class exe1
{
public static void Main()
{
int a, b;
a = b = 3;
b += a / ++b;
Console.WriteLine("a={0},b={1}",a,b);
Console.Read();
}
}
为什么b输出的会是3呢?
public class exe1
{
public static void Main()
{
int a, b;
a = b = 3;
b += a / b++;
Console.WriteLine("a={0},b={1}",a,b);
Console.Read();
}
}
把++b改成b++后,为什么b输出的是4?这里b不是自增了么?

exe1中
b += a / ++b; 等价于
++b 得 4
c=a/4 得 3/4 =0
b+=c 得 4+=0=4

exe2中
b += a / b++; 等价于
c=a/b 得 3/3=1;
b+=c 得 3+=1=4
这就是前++和后++的区别

一句话概括,在一条执行的语句中
i++表示:执行完语句后自增.
++i表示:执行语句前先自增.

1. 首先进行++b=4;然后a/++b=0;最后b+=a / ++b=3

2. 首先在分号之前b++ =3;后来(分号后b=4);然后a/b++ =1;最后b+=a / b++ =3+1=4;

如:int a=1,b=2;
a++; 在分号前a=1
打印a时 a=2(分号后);
++b; 在分号前b=3
打印b时 b=3(分号后);

a++;先参与运算后自增
++a;先自增后参与运算

b++的意思是先用b的值进行计算再把b加1。
如程序2
b+=a/b++
就是先用了b的值3
++b的意思是先把b的值加1然后在进行运算。
如程序1
b+=a/++b
就是后边的++b因为加一变成了4
把++b改成b++后,b是在运算后才自增的。