Java语言输入一个数字判断是几位数,下面的程序怎么不对呢,急!在线等

int shu = 10*71934;
if (shu < 10) System.out.println("1");
if (shu < 100) System.out.println("2");
if (shu < 1000) System.out.println("3");
if (shu < 10000) System.out.println("4");
if (shu < 100000) System.out.println("5");
if (shu < 1000000) System.out.println("6");
if (shu < 10000000) System.out.println("7");
if (shu < 100000000) System.out.println("8");
if (shu < 1000000000) System.out.println("9");
if (shu < 10000000000) System.out.println("10");

2个回答

检查下 else 分支,可能是判断不严谨导致 if 分支数据重叠了。

你的代码应该有两个问题:

1.int类型的文本1000000000超出范围
2.假如你输入一个7位数字,他小于八位、九位、十位,所以他都会输出

下面的代码应该可以实现:

import java.util.Scanner;

public class Gongyue {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int a=sc.nextInt(),n=0;
        while (a!=0) {
            ++n;
            a/=10;
        }
        System.out.println(n);
    }

}
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐