计算整数的数字

时间:2015-11-07 05:26:56

标签: java

该程序用于计算整数的数字。所以有可能用户输入输入字符串(" raju"无论它可能是什么),数字(12334),组合(字符串和数字,即234dsd)和什么(他没有'输入任何东西),不是吗?可能还有另外一个机会我也不知道(如果在这里提到的话)。尝试各种输入,这里的问题是当我输入数字而没有输入时。如果输入是数字"结果不会出现"如果语句没有执行,cmd提示不会继续进行,输入什么都不是(未输入)当cmd提示符出现时?

//computing digits of integer.
import java.util.Scanner;
 class Main
 {
 public static void main (String w[]) 
 {
    Scanner s=new Scanner(System.in);
    System.out.print("Enter a number");
    String g=s.nextLine();
    System.out.println("Entered value is"+g);
    if(g==null)
    {
        System.out.println("Enter atleast one number");
    }
    else
    {
    try
    {
            int st=Integer.parseInt(g); 
            int sum=0;      
            while(st>=0)
            {
                int value=st%10;
                st=st/10;           
                sum=value+sum;
            }
            System.out.println("the sum of digits: "+sum);

    }catch (NumberFormatException nfe)
    {
        System.err.println("Invalid input. Enter only number...");
    }
    }
}
}

3 个答案:

答案 0 :(得分:0)

很难理解你在这里问,但如果你问你的代码是在用户输入无效输入时没有再尝试,那么答案是因为你的代码没有循环来做这件事。

重复某事(在这种情况下,要求输入的任务)通常需要某种循环。

如果你正确缩进代码,这对你来说可能更明显。

答案 1 :(得分:0)

试试这个

//computing digits of integer.
import java.util.Scanner;

public class Main {

    public static void main(String w[]) {
        Scanner s = new Scanner(System.in);
        System.out.println("Enter a number");
        String g = s.nextLine();
        System.out.println("Entered value is " + g);
        try {
            int st = Integer.parseInt(g);
            int sum = 0;
            while (st > 0) {
                int value = st % 10;
                st = st / 10;
                sum = value + sum;
            }
            System.out.println("the sum of digits: " + sum);
        } catch (NumberFormatException nfe) {
            System.err.println("Invalid input. Enter only number...");
        }
    }
}

答案 2 :(得分:0)

到目前为止,没有一个答案明确提到了问题:这里有一个无限循环:

        int st=Integer.parseInt(g); 
        int sum=0;      
        while(st>=0)
        {
            int value=st%10;
            st=st/10;           
            sum=value+sum;
        }

因为当你以正值开始时st永远不会变为负数。