www.ndwl.net > 设有定义,FloAt x=2.5,A=7,y=4.7;则算数表达式x+...

设有定义,FloAt x=2.5,A=7,y=4.7;则算数表达式x+...

x+a%3*(int)(x+y) x+a%3*(int)(2.5+4.7) 2.5+7%3*(int)(7.2) 2.5+1*7=9.500000 请注意(int)(7.2),意思是强制把数据类型转换成int型,去掉小数部分,不会四舍五入, 最后float型与int型相加,两个数据类型自动转换成double型,结果9.500000,默...

表达式x+a%3*(int)(x+y)%2+/4 写错了,还是怎么的,这里有问题+/4是什么意思?

一共出现这么几个操作符:(),+,*,%,/,() 优先级顺序依次为:(分块),(强制类型转换),*,+,/,%,其中 / 和 % 优先级相同 所以运算的顺序应该是: 1.执行分块 (x+y) = 2.5 + 4.7 = 7.2; 2.执行强制转换 (int)7.2 = 7; 3.做乘法运算 3 * 7 = 21; 4.现在...

public class T0609 { public static void main(String args[]) { int a=7; float x=2.5f; float y=4.7f; System.out.println(x+a%3*(int)(x+y)%2/4); } } ===========测试结果============= 2.5 说明: 这个关键是优先级问题 1)括号永远优先级最...

这个问题很简单的,* ,/,%,的优先级一样,所以遵循自作至右的原则来运算。 先看a%3*(int)(x+y)%2/4。a=7,所以a%7的值等于1,然后x+y=7.2,因为int型转换,转换后为7;1*7依然是7;7%2=1;1/4=0(因为都是整数)。X+0=X=2.5; 故结果为2.5

根据运算符优先级,先算x+后面的。a%3就是7对3取余,至此算式简化为:x+1*(int)(x+y)%2/4。1*可以省略,先算括号里的,再次简化为x+(int)7.2%2/4。此时将7.2转为int型,算式变为x+7%2/4,先算7%2,结果为1,算式至此简化为x+1/4。而1/4...

x+a%3*(int)(x+y)%2/4 =x+1*7%2/4 =x+1/4 =x

一共出现这么几个操作符:(),+,*,%,/,() 优先级顺序依次为:(分块),(强制类型转换),*,+,/,%,其中 / 和 % 优先级相同 所以运算的顺序应该是: 1.执行分块 (x+y) = 2.5 + 4.7 = 7.2; 2.执行强制转换 (int)7.2 = 7; 3.做乘法运算 3 * 7 = 21; 4.现在...

因为(int)是说运算结果强转成int,所以0.25从浮点数转完int就是0了 或者可以这么理解: (int)(x+y) = 11 11%2 = 1 1/4 = 0 (因为int运算只取整数部分)

()运算级最高 先做(x+y)结果为7.2 然后做(int)7.2 结果为7* / % 的优先级相同 结合方向是自左至右 即(((a%3)*7)%2)/4 得出的结果再与x运算

网站地图

All rights reserved Powered by www.ndwl.net

copyright ©right 2010-2021。
www.ndwl.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com