该程序用于计算整数的数字。所以有可能用户输入输入字符串(" 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...");
}
}
}
}
答案 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
永远不会变为负数。