若有以下定义,则计算表达式y+=y-=m*=y后的y值

2024年11月17日 01:36
有5个网友回答
网友(1):

表达式从右向左计算也就是程序中的y+=y-=m*=y;相当于:

m=m*y;

y=y-m;

y=y+y;

所以程序的执行结果是:

网友(2):

从左往右分解,y+=y-=m*=y 就是 y=y+(y-=m*=y)

y-=m*=y 就是 y=y-(m*=y)

m*=y 就是 m=m*y

那么就等于:

m=m*y;//m=10,y=2

y=y-m;//m=10,y=-8

y=y+y;//m=10,y=-16

y为-16

扩展资料:

嵌套循环(LOOP JOIN)类似于C语言编程时的双重循环。作为外层循环逐行扫描的表,针对外部输入表的每一行,适用于外部输入表的行数较少,内部输入表创建了索引的情形。

合并连接(MERGE JOIN)类似于两个有序数组的合并。两个输入表都在合并列上排序;然后依序对两张表逐行做连接或舍弃。如果预先建好了索引,合并连接的计算复杂度是线性的。

参考资料来源:百度百科-连接

网友(3):

y+=y-=m*=y;

按照运算优先级

y+= (A)
需要先计算 (A),不然根本不知道y要加多少

(A) = y-=(B)
需要先计算(B),不然根本不知道y要减多少

(B)=m*=y = 10

得出了(B)的值,接下来计算 y-=(B) 即(A)的值 得出 y=-8

得出y的值后计算y+= (A)

即: -8+=(-8) = -16

明白了?

网友(4):

这种自加自减的运算是从右往左的,所以先算m*=y,m=m*y=10;y-=10,y=y-10=-8;但是现在的y经是-8了,而不是2,所以最后y+=-8,y=-8-8=-16

网友(5):

从右向左读

M*=Y // M=M*Y 此时M=10 Y=2 表达式=10
Y-=M // Y=Y-M 此时Y=2-10=-8
Y+=Y // Y=Y+Y 此时Y=-8 + -8 =-16