大神幫忙 啊 急急急
package LX504;
public class LX {
?public static void main(String[] args) {
??int x = 2;
??int y = (x++)/3;
??System.out.println(y);
?}
}
怎么算出結(jié)果等于0啊?? 說下過程吧
package LX504;
public class LX {
?public static void main(String[] args) {
??int x = 2;
??int y = (x++)/3;
??System.out.println(y);
?}
}
怎么算出結(jié)果等于0啊?? 說下過程吧
2017-05-04
舉報(bào)
2017-06-06
首先你得明白 / 的結(jié)果怎么取值 :取結(jié)果的整數(shù),把余數(shù)統(tǒng)統(tǒng)舍去。
再者 x++ 表示 先執(zhí)行x 再對(duì)x進(jìn)行++
所以 (x++)/3 ?過程是 ?x/3 ?也就是 2/3=0.66666(現(xiàn)實(shí)生活中的算術(shù)) ?結(jié)合剛剛說的 / 的取值 ?所以2/3=0 ,
所以y=0;執(zhí)行完此句話之后x=3
2017-05-14
?int y = (x++)/3;//此處“/”表示取整,余數(shù)舍去,這里x先執(zhí)行2/3,再執(zhí)行x++;y=2/3=0
2017-05-04
package LX504;
public class LX {
?public static void main(String[] args) {
??int x = 2;
??int y = (++x)/3;
??System.out.println(y);
?}
}
x++改成++x就可以的?
2017-05-04
首先,x和y都是int類型,也就是說x和y都不能有小數(shù)位,如果有小數(shù)位,系統(tǒng)會(huì)自動(dòng)丟棄,只取小數(shù)位前面的整形數(shù)字。x剛開始的值為2,運(yùn)行到 y = (x++)/3,先運(yùn)行x++, x++的意思是x自身的值的接下來使用的時(shí)候增加1,當(dāng)前語(yǔ)句x的值并不會(huì)增加,要等到?y = (x++)/3; 語(yǔ)句執(zhí)行完再會(huì)增加。也就是說這時(shí)候 y = 2/3,y的值小于1的,系統(tǒng)自動(dòng)丟棄后面的小數(shù)位,就只剩下0了。
2017-05-04
()優(yōu)先級(jí)最高 所以先執(zhí)行x++,++是算數(shù)運(yùn)算符自增,由于你的x初始值為2,所以x++得值為3,
最后進(jìn)行3除以3的運(yùn)算,結(jié)果為0,賦值給y。你打印的是y,所以最后顯示的是y得值0.
2017-05-04
x++是先執(zhí)行再加1,所以這里是2/3結(jié)果等于0,換成++x,結(jié)果是1