亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

大神幫忙 啊 急急急

package LX504;

public class LX {
?public static void main(String[] args) {
??int x = 2;
??int y = (x++)/3;
??System.out.println(y);
?}
}

怎么算出結果等于0啊?? 說下過程吧

正在回答

6 回答

首先你得明白 / 的結果怎么取值 :取結果的整數,把余數統統舍去。

再者 x++ 表示 先執行x 再對x進行++

所以 (x++)/3 ?過程是 ?x/3 ?也就是 2/3=0.66666(現實生活中的算術) ?結合剛剛說的 / 的取值 ?所以2/3=0 ,

所以y=0;執行完此句話之后x=3

0 回復 有任何疑惑可以回復我~

?int y = (x++)/3;//此處“/”表示取整,余數舍去,這里x先執行2/3,再執行x++;y=2/3=0

0 回復 有任何疑惑可以回復我~

package LX504;

public class LX {
?public static void main(String[] args) {
??int x = 2;
??int y = (++x)/3;
??System.out.println(y);
?}
}

x++改成++x就可以的?

0 回復 有任何疑惑可以回復我~
#1

念著倒都人的帥

你可以看下JAVA入門第一季3-2 Java中的算數運算符 也許你能懂點
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了。

1 回復 有任何疑惑可以回復我~

()優先級最高 所以先執行x++,++是算數運算符自增,由于你的x初始值為2,所以x++得值為3,

最后進行3除以3的運算,結果為0,賦值給y。你打印的是y,所以最后顯示的是y得值0.

0 回復 有任何疑惑可以回復我~
#1

承諾太虛偽 提問者

3/3=0??? 為什么??
2017-05-04 回復 有任何疑惑可以回復我~
#2

qq_布宜諾斯艾利斯_1 回復 承諾太虛偽 提問者

我的理解是錯的,樓下正解
2017-05-05 回復 有任何疑惑可以回復我~

x++是先執行再加1,所以這里是2/3結果等于0,換成++x,結果是1

2 回復 有任何疑惑可以回復我~
#1

承諾太虛偽 提問者

說詳細點 好嗎 沒聽明白
2017-05-04 回復 有任何疑惑可以回復我~
#2

qq_何為真何為假天知道_0 回復 承諾太虛偽 提問者

x++,先將2的值作為X++的值去使用,然后X再加1,X++的值是2;2/3=0.667,因為都是整數相除,小數都舍去結果是0
2017-05-05 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

大神幫忙 啊 急急急

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號