import java.util.Scanner;
public class Jiafa
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();

if(a/10000>0)
{
System.out.println("5");
}
else if(a/1000>0&&a/10000<0)
{
System.out.println("4");
}
else if(a/100>0&&a/1000<0)
{
System.out.println("3");
}
else if(a/10>0&&a/100<0)
{
System.out.println("2");
}


}
}
输入一个不多于5位的正整数,求它是几位数
我怎么作出来只有输入5位数的时候,能显示输出5,其他就不行了,
麻烦各位大虾帮我改改上面的代码!不知道哪点错了

解决方案 »

  1.   

    看来你还不是很熟悉ifelse的规则呀,你应该从小往大去判断就可以了。
    O(∩_∩)O~
      

  2.   

    运行一下,lz看看是这个意思不?import java.util.Scanner;public class D {
    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int a = sc.nextInt(); String num=Integer.toString(a);
    int length=num.length();
    if(length==5){
    System.out.println(5);
    }else if(length>5){
    System.out.println("你多于5位,不显示你");
    }
    else{
    System.out.println("你不是5位,你是"+length+"位");
    }
    }
    }
      

  3.   

    应该是和1比较,而不是和0比较。
    修改后的代码如下所示:package net.csdn.blog.johnston;import java.util.Scanner;public class Jiafa { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner sc = new Scanner(System.in);
    int a = sc.nextInt();

    if(a/10000>=1)
    {
    System.out.println("5");
    }
    else if(a/1000>=1&&a/10000 <1)
    {
    System.out.println("4");
    }
    else if(a/100>=1&&a/1000 <1)
    {
    System.out.println("3");
    }
    else if(a/10>=1&&a/100 <1)
    {
    System.out.println("2");

    }}