首页 > 试题广场 >

如下Java语句 double x= 3.0; int y=

[单选题]
如下Java语句
double x= 3.0; 
int y=5; 
x/=--y;
执行后, x的值是()
  • 3
  • 0.6
  • 0.4
  • 0.75
--y会获得y-1之后的结果,为4
x/=--y相当于x=x/4,x为double类型,4转换为double类型,得到小数0.75
发表于 2016-08-31 03:08:09 回复(2)
--y和y--,前者优先级最高参与运算之前减1。y--优先级最低一般参与运算之后再减1,区别开这两种情况 这类题就简单了
发表于 2017-10-11 23:15:50 回复(0)
其实这里注重的就是运算符的优先级问题。
发表于 2016-11-10 09:04:37 回复(0)
x--是先使用再减一,--x是先减一再使用
发表于 2017-03-22 13:30:39 回复(0)
x/=--y 展开为x=x/--y 优先级--高于/  x类型为double,y类型为int,发生int类型提升为double
发表于 2016-08-29 15:37:15 回复(3)
关键就是--y和y--,前者先减再赋值,后者先赋值后减。若y是5,那么前者就是4,后者依旧是5。
发表于 2019-06-24 10:27:55 回复(0)
另外本题还涉及了数据类型转换的问题。数据类型转换分为自动转换和强制转换。大转小需强制,小转大是自动。
发表于 2017-10-09 16:06:59 回复(0)
有一个变量类型的强制转化,先用整数类型执行减减,然后再执行除法,在做除法之前有强制类型转换。
发表于 2017-06-07 10:54:24 回复(0)
前++ 先加得结果 后赋值 后++ 先赋值 后得到结果
发表于 2017-04-27 18:55:17 回复(0)
选择D,因为--在在前面,y先-1,然后在除x,即3/4
发表于 2016-10-30 22:26:18 回复(0)
--在前先自减后使用,所以是0.3/4
编辑于 2016-09-26 18:08:31 回复(1)
x /= --y 相当于 x = x / --y  x的值为3.0,类型为double;y的值为5,--y-->y自减一值为4. 结果为double类型。 x = 3.0 / 4; x=0.75
发表于 2016-09-23 23:51:39 回复(0)
优先级 运算符 结合性
1 () [] . 从左到右
2 ! +(正号) -(负号) ~(取补) ++(自增) - -(自减) 从右向左
3 * / % 从左到右
4 +(加号) -(减号) 从左到右
5 << >> >>> 从左到右
6 < <= >= > instanceof 从左到右
7 ==(等于) != 从左到右
8 & 从左到右
9 ^ 从左到右
10 | 从左到右
11 && 从左到右
12 || 从左到右
13 ?: 从右向左
14 = += -= *= /= %= &= |= ^= ~= <<= >>= >>>= 从右向左
发表于 2018-03-14 16:35:55 回复(0)
x = x / (--y);
发表于 2020-02-10 23:37:28 回复(0)
  • i++ 先赋值在运算,例如 a=i++,先赋值a=i,后运算i=i+1,所以结果是a==1

  • ++i 先运算在赋值,例如 a=++i,先运算i=i+1,后运算a=i,所以结果是a==2

发表于 2019-07-16 17:58:36 回复(0)
1.--y和y--,前者优先级最高参与运算之前减1。y--优先级最低一般参与运算之后再减1,区别开这两种情况 这类题就简单了 2.强制数据类型转换 小转大自动 (int—〉double)大转小需强制(反过来)
发表于 2018-11-08 08:41:53 回复(0)
--y是先减1后引用
发表于 2018-09-23 23:41:04 回复(0)
--y和y--
发表于 2018-03-20 22:45:04 回复(0)
x/=--y,其实就是先算y--,得y=4;再算x=x/y,结果为0.75
发表于 2018-02-25 18:19:40 回复(0)
妈妈吖,脑子一抽,负负得正,错得清新脱俗!
发表于 2017-11-22 07:31:14 回复(0)