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

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

求大佬指點為何本代碼中關于for循環下面的if循環僅執行了兩次?

package?imooc;
public?class?HelloWorld?{	
??public?static?void?main(String[]?args){?	??
????int?num?=?999;	??
????for(int?count?=?1;count?>=0&&count?<=?999999999;count++){		??
??????if(num?/?10?==?0){			??
????????System.out.println("它是個"?+?count?+?"位的數!");			??
??????????break;		??
??????}else{			???
?????????num?=?num?/?10;		??
??????}	??
????}	
??}
}

? ? ?首先我認為代碼中if循環會執行三次,所以我在for循環中將變量count初始化為0,三次循環后輸出“它是個3位的數!”,從而實現任務需求。然而實際運行后發現if循環僅執行兩次,所以我將for循環中count變量重新初始化為1方使得程序得以輸出正確結果。所以求各位大佬指點為何if執行了兩次后變量num的值便滿足if循環后的判斷條件“num / 10 == 0”呢?謝謝指點!

正在回答

2 回答


因為num=num/10會執行兩遍,第三次num/10==0,所以會滿足if里面的判定條件,執行輸出語句,如果count初始化為0的話,此時count==2,而此時會執行if里面的break,會跳出整個循環,所以count初始化必須為1,換句話說,else后面的語句運行了兩次,if后面的語句運行了一次,而for循環僅僅執行兩次。

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

龍王大毛球 提問者

了解了,若if后面的判斷語句為“num == 0”的話,count可初始化為0對吧!
2019-02-26 回復 有任何疑惑可以回復我~
#2

張小白菜

嗯,對的
2019-02-26 回復 有任何疑惑可以回復我~

難道是因為if對括弧中表達式進行判斷的同時已將“num / 10”的值賦給了num?

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

舉報

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

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

進入課程

求大佬指點為何本代碼中關于for循環下面的if循環僅執行了兩次?

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

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

幫助反饋 APP下載

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

公眾號

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