java计算题,谢谢

int a=8int b=3float c=(a++)/(b--)为什么c等于2呢?谢谢
2025-05-14 13:43:53
推荐回答(5个)
回答(1):

这题要知道++,--放在后面是怎么操作的,比如这一题,他会先计算a/b,然后再执行a=a+1, b=b-1
因为a和b都是整数,所以他的默认计算按整数除法计算,所以8/3=2,即c=2,计算后a=9, b=2

回答(2):

因为++和--在a和b的后面,所以是先使用a、b的值,然后再对他们进行递增和递减,故进行除法运算的时候a和b的值分别为8和3,又因为a和b都是int类型的数,所以他们之间的除法是“整除”,就是他们之间的除法会进行“截余”,把余数截掉,所以最后的结果是2。

回答(3):

类似X++的语句是先取原来的值再加的,++X则是先加后在赋值;所以得到c的值是(8/3)的int类型;如果要得到float的值,可以将a强制转换成float类型。

回答(4):

a++是先计算表达的值,然后自增,b--也同样的道理。
那么先计算 8/3 =2 ,然后强制类型转换成 float ~

回答(5):

后加加和后减减都比除号的优先级低