if(num>=0&&num<=9999999999){
do
{
count++;
num/=10;
}while(num!=0);
System.out.println(count+"位数");
}else{
System.out.println("输入有误");
}
给出的答案会把0判断成0位数
package study;
import java.util.Scanner;
public class NumWeiShu {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入一串小于10位的数字");
int num = in.nextInt();
int i = 0;
do{
num = num / 10;
i++;
if(num == 0){
System.out.println("您输入的数字是"+i+"位");
}
}while(num > 0);
}
}
public class HelloWorld { public static void main(String[] args) { int num = 0; int count =0; if(num>=0&&num<=999999) { do { count=count+1; num=num/10; }while(num!=0); System.out.println(count+"位数"); } else System.out.println("输入有误"); } }
试试这个代码,并没有太大的改变,只是把
count++;
num/= 10;
变成了count=count+1;
num=num/10;
最小的一位数是1,所以你可以在前面的if判断中把等于0的情况排除掉,即把小于等于0的等号去掉。
或者不使用do。。。while,而直接用while, 或者其他办法。
共同学习。。。
public class HelloWorld { public static void main(String[] args) { int num = 0; int count = 1; while(num>=10) { count=count+1; num=num/10; } System.out.println("它是个"+count+"位的数!"); } }
public class HelloWorld{
public static void main(String[] args){
int num = 999;
int count = 0;
if(num >= 0 && num <=999999999){
while (num != 0){
count++;
num/= 10;
}
System.out.println("它是个" + count + "位的数!");
}else{
System.out.println("请重新输入");
}