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

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

完全理解不了,求解釋,代碼是抄答案的,是不是太笨了o(╥﹏╥)o

public class HelloWorld{

public static void main(String[] args){

int num = 9999;

int count = 0;

if(num>=0&&num<=999999999){

? ? while(num!=0){

? ? ? ? count++;

? ? ? ? num/=10;

? ? }

? ? System.out.println("它是個"+count+"位的數!");

}else{

? ? System.out.println("輸入有誤!");

}

}

}


正在回答

8 回答

int num = 9999;

int count = 0;

if(num>=0&&num<=999999999){

? ? while(num!=0){

? ? ? ? count++;

? ? ? ? num/=10;

? ? }

? ? System.out.println("它是個"+count+"位的數!");

}else{

? ? System.out.println("輸入有誤!");

}

while第一次判斷條件成立,執行:count 變成1了 ?num變成999.9了 ? ?

while第二次判斷條件成立,執行:count變成 2了 ?num變成99.9了

while第三次判斷條件成立,執行:count變成3了 num變成 9.9了

while第四次判斷條件成立,執行:count變成4了 num變成 0.9,因為是int變量類型(整數),所以num變成了0

while第五次判斷條件不成立,結束while循環,進入System

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

while第一次判斷條件成立,執行:count?變成1了??num變成10了????
while第二次判斷條件成立,執行:count變成?2了??num變成1了
while第三次判斷條件成立,執行:count變成3了?num變成?0.1,因為是int變量類型,所以num變成了0
while第四次判斷條件不成立,結束while循環,進入System

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

weixin_慕函數9095607

如果int num=9999; while第一次判斷條件成立,執行:count 變成1了 num變成999.9了 while第二次判斷條件成立,執行:count變成 2了 num變成99.9了 while第三次判斷條件成立,執行:count變成3了 num變成 9.9了 while第四次判斷條件成立,執行:count變成4了 num變成 0.9,因為是int變量類型(整數),所以num變成了0 while第五次判斷條件不成立,結束while循環,進入System
2021-03-30 回復 有任何疑惑可以回復我~

說錯了,跟int沒有關系,在Java中,/出來的都是整數,且并不會四舍五入。

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

因為是/10,最后剩一個數的時候除出來是小數,因為num是int型的,會默認為0,計數器額外+1

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

public class HelloWorld{
??? public static void main(String[] args){
??????? int num = 999;
??????? int count = 0;

??????? if(num > 0 && num < 0x7FFFFFFF) {
??????????? while(num / 10 != 0) {
??????????????? count++;
??????????????? num /= 10;
??????????? }
??????????? System.out.println("他是個" + (count + 1) + "位的數!");
??????? } else {
??????????? System.out.println("輸入有誤");
??????? }
??? }
}

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

慕姐1003813

count為什么是以自加的方式進行判斷num的位數呢,如果num循環到11,那count是1,循環到12,count不就是2了么
2020-11-04 回復 有任何疑惑可以回復我~
#2

qq_慕數據1267178 回復 慕姐1003813

12/10得出num是1,1/10的0.1,但num是int型,小數部分會丟棄,循環條件不成立,結束循環
2020-11-05 回復 有任何疑惑可以回復我~

public class HelloWorld{

public static void main(String[] args){

long num = 1111111111;

int count = 1;

while( num / 10 != 0 ){

? ? ? ? count +=1;

? ? ? ? num /= 10;?

? ? }

if(count>=10){

? ?System.out.println("重新輸");?

}else

? ?System.out.println("它是個"+count+"位的數");

?}

}


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

public class HelloWorld{

? ? public static void main(String[] args){

? ? ? ? int num = 999;

? ? ? ? int count = 0;

? ? ? ? while(num > 0){

? ? ? ? ? ? num /= 10;

? ? ? ? ? ? count++;

? ? ? ? ? ? if(num == 0)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? System.out.println("它是個" + count + "位的數");

? ? ? ? ? ? }

? ? ? ? }

? ? }

}


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

慕沐2344328

為什么不可以是 while(num<1) 求解啊
2020-11-08 回復 有任何疑惑可以回復我~
#2

慕桂英5256766 回復 慕沐2344328

額 因為num=999
2020-12-06 回復 有任何疑惑可以回復我~
#3

慕容3257468

老師,int不是只能取整數嗎,這里為什么不是 float num=999
2021-01-23 回復 有任何疑惑可以回復我~

就是給一個數值,讓它極大,然后呢,取出循環中通用的數值.

?int值除以一個數值,會產生一個 大于整數的值。

????比如:2位數是在 10-99 就是說999 / 99, 還是0;

就是/999,若為0,它就是這個count位數,

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

慕勒9944832 提問者

count++; num/=10; 這個怎么理解。。o(╥﹏╥)o
2020-10-28 回復 有任何疑惑可以回復我~
#2

慕工程4430411 回復 慕勒9944832 提問者

就是說呢,999/10 最多得到 99,就是少了一位數,直到為0,就是位數的個數
2020-10-28 回復 有任何疑惑可以回復我~
#3

慕工程4430411 回復 慕勒9944832 提問者

可以看看我下面寫的代碼,好理解點, 要理解,int值除以一個數值,會產生一個 大于整數的值。/ 10 就是將位數去掉最高的那一位
2020-10-28 回復 有任何疑惑可以回復我~
#4

慕勒9944832 提問者 回復 慕工程4430411

大佬,這個是什么意思count++;
2020-10-28 回復 有任何疑惑可以回復我~
#5

慕勒9944832 提問者 回復 慕工程4430411

我在回頭看看循環先吧,現在很懵
2020-10-28 回復 有任何疑惑可以回復我~
查看2條回復

舉報

0/150
提交
取消

完全理解不了,求解釋,代碼是抄答案的,是不是太笨了o(╥﹏╥)o

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

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

幫助反饋 APP下載

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

公眾號

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