求大佬指點為何本代碼中關于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”呢?謝謝指點!
2019-02-26
因為num=num/10會執行兩遍,第三次num/10==0,所以會滿足if里面的判定條件,執行輸出語句,如果count初始化為0的話,此時count==2,而此時會執行if里面的break,會跳出整個循環,所以count初始化必須為1,換句話說,else后面的語句運行了兩次,if后面的語句運行了一次,而for循環僅僅執行兩次。
2019-02-26
難道是因為if對括弧中表達式進行判斷的同時已將“num / 10”的值賦給了num?