在JAVA中 i=3,j=2,k=1, k-=i++/++k-i*j--+j*k的值为多少? 为什么
来源:百度知道 编辑:UC知道 时间:2024/05/26 18:08:52
还有k-=++i/++k-i*--j+j*k
首先我们必须知道,在运算过程中,等号左边和右边是不同的,右边的运算不影响左边,所以,在右边那一串运算的时候,左边这个k一直是初值1
你可以做个简单实验,
k=1
k=k++;
那么结果一定是1. 当然如果k=++k 就是2了。
现在看题目
i=3,j=2,k=1,
k-=i++/++k-i*j--+j*k
在运算过程中是这样的,注意在等式右边java中是从左到右的。
k-=(i++/++k)-(i*j--)+(j*k);
1 - = (3/2)-(4*2)+(1*2)
k = 6;
i=3,j=2,k=1,
k-=++i/++k-i*--j+j*k
1-=4/2-4*1+2*1
k=1;
在运算中,等式右边也是有从左到右或从右到左的顺序的,尤其以前不同的编译器在不同的环境下。当然现在java既然是跨平台的。应该都是一样的。
最后总结一下,这个问题,或者说这种类型的问题,我个人觉得相当教条。环境就是这样设定的,在运算过程中,寄存器中就是这样存储的。
我觉得你不用深入研究。 只需了解k在等式左右是不同的就行了,我想没有哪个技术总监想看到小弟写出这种代码的。:)
1、k=6
2、k=1
我在环境中就是用int类型的,根本没报错.
第一个,如果k为int类型会报错,因为i++/++k为3/2
如果k不是int型,k=3/2-4*2+1*2,即4.5
第二个,如果执行前i=3,j=2,k=1,就是k=4/2-4*1+1*2,即0
t546544
在C语言中j=-i++
向量i(i+j)+j(2j+3j)=?
c中 已知 i=3,然后 j=++i+(++i)+(++i)=16 为什么
j=(++i)+(++i)+(++i);
请问,在C语言中,FOR循环可不可以这么写 for(i=0, j=0 ; i<5, j<6 ; i++, j++ ;)
if (i!=k&&i!=j&&j!=k) 中!的意思是什么?
if ( (i!=j) && (i!=k) && (j!=k)中!如何理解
java 语言中,i = i++什么意思
C语言中 x*=i=j 是什么意思?
对initgraph()函数进行初始化是,如inigraph(&i,&j,""),i=CGA,j=CGACO,其中括号中3个量是什么意思?