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

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

編程練習遇到的問題

for(int i=1;i<10;i++){ ? ?if(num/(10^i)<=1){ ? ? ? ?count=i; ? ? ? ?System.out.println("它是個"+count+"位的數!"); ? ?} } 誰能教一下問題在哪,感激不盡

正在回答

6 回答

^ 是按位異或 不是冪指數的意思。比如二進制 ? ? 1001 ^ 1100 = 0101
0^0=0,1^1=0 ,1^0 = 1,0^1=1。

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

慕粉3461685 提問者

非常感謝!
2016-06-06 回復 有任何疑惑可以回復我~

問題很多,^是判斷真假的,你應該是想用*;if(num/(10*i)<=1)里,用count=i會造成死循環;

所以for里條件不對得換,if的循環體里的加限制的條件語句

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

愛愛慕

上面的有些失誤,沒注意。 你這樣做的思路是對的,可是在這道題里不太好實現,這個題目里的都是int型,不管你用%,/t它的答案都是小于10的,也就是你的判斷一直都會是1位的,你可以用強制類型轉換試一下,并且你要在System后加break;
2016-06-05 回復 有任何疑惑可以回復我~
#2

慕粉3461685 提問者

非常感謝
2016-06-06 回復 有任何疑惑可以回復我~

且“^”是異或符號吧

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

樓主,你可以用紙和筆進行手動演算一下,當i= 1和2是if條件不成立,但是i = 3到9,if條件都是成立的所以,count最終會賦值成9,結果就是錯誤的了,解決的辦法是在count = i;之后加一條break;語句終止循環,輸出的就是正確的值了

for?(int?i?=?0;?i?<?10;?i++)?{
????if?(num?/?(10?^?i)?<=?i)?{
????????count?=?i;
????????break;
????}
????System.out.println("它是個"+count+"位的數!");
}


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

慕粉3461685 提問者

非常感謝
2016-06-06 回復 有任何疑惑可以回復我~

它輸出后還會繼續循環

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

慕粉3461685 提問者

非常感謝
2016-06-06 回復 有任何疑惑可以回復我~

你應該結束循環了

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

慕粉3461685 提問者

非常感謝
2016-06-06 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Java入門第一季(IDEA工具)升級版
  • 參與學習       1167766    人
  • 解答問題       18749    個

0基礎萌新入門第一課,從Java環境搭建、工具使用、基礎語法開始

進入課程

編程練習遇到的問題

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

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

幫助反饋 APP下載

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

公眾號

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