這樣哪里錯(cuò)了?
public class HelloWorld{
public static void main(String[] args){
int num = 999;
int count = 0;
? ? do {
? ? ? ? count=count+1;
? ? ? ? num=num % 10;
? ? } while (num % 10 != num)
? ? println("它是個(gè)" + count "位的數(shù)!");
}
}
public class HelloWorld{
public static void main(String[] args){
int num = 999;
int count = 0;
? ? do {
? ? ? ? count=count+1;
? ? ? ? num=num % 10;
? ? } while (num % 10 != num)
? ? println("它是個(gè)" + count "位的數(shù)!");
}
}
2016-01-06
舉報(bào)
2016-01-10
%他是求余的 ? 用/
2016-01-06
你應(yīng)該是想除以10吧,把'%'改成'/'即可;
另建議把代碼寫到方法體中,不要寫在判斷語句處;
代碼修改后如下:
public class HelloWorld{
????public static void main(String[] args){
????????int num = 999;
????????int count = 0;
????????while?(num?!=?0)?{
????????????count?= count+1;
? ??????????num?=?num/10;
????????}
????????println("它是個(gè)" + count "位的數(shù)!");
????}????
}
2016-01-06
num % 10 != num 改為 num >0
2016-01-06
應(yīng)改為
public class HelloWorld{
public static void main(String[] args){
int num = 999;
int count = 0;
? ? do {
? ? ? ? count=count+1;
? ? ? ? num=num / 10;
? ? } while (num / 10 != num);
? ? System.out.println("它是個(gè)"+count+"位的數(shù)!");
}
}
2016-01-06
問題在于
do {
? ? ? ? count=count+1;
? ? ? ? num=num % 10;
? ? }?
中,num=num%10,第一次運(yùn)行:
num=999;
執(zhí)行num=num%10后,num=9;
退出循環(huán)了。所以你的結(jié)果 是1位數(shù)
不該用mod方法求位數(shù),正確的:
int num = 999;
int count = 0;
?do {
? ? ? ?count=count+1;
?? ?} while((num=num/10)!=0);//注意這里有個(gè)分號(hào)。問題描述中的沒有,是會(huì)報(bào)錯(cuò)的
System.out.println("它是個(gè)" + count +"位數(shù)");
2016-01-06
%是模運(yùn)算,取余數(shù)的,你需要的是除法/