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