Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建一个显示数字总和的java应用程序_Java - Fatal编程技术网

创建一个显示数字总和的java应用程序

创建一个显示数字总和的java应用程序,java,Java,我对Java比较陌生,目前正在学习while、do-while和for循环。我想创建一个应用程序,使用这些概念来显示数字的位数之和,但我不知道如何创建。我之前创建了一个只显示数字的应用程序。给你 int digit; Scanner input = new Scanner(System.in); do { System.out.println("Enter a positive integer: "); digit = input.nextInt(); } while (dig

我对Java比较陌生,目前正在学习while、do-while和for循环。我想创建一个应用程序,使用这些概念来显示数字的位数之和,但我不知道如何创建。我之前创建了一个只显示数字的应用程序。给你

int digit;
Scanner input = new Scanner(System.in);

do {
    System.out.println("Enter a positive integer: ");
    digit = input.nextInt();
} while (digit <= 0);
input.close();

String sdigit = digit + "";
for (int i = 0; i < sdigit.length(); i++){
    System.out.println(sdigit.charAt(i));
}
int位;
扫描仪输入=新扫描仪(System.in);
做{
System.out.println(“输入一个正整数:”);
数字=输入。nextInt();

}而(数字不需要添加太多代码来求和数字:

第一种解决方案:使用带有“0”字符的减法

int digit;
Scanner input = new Scanner(System.in);

do {
    System.out.println("Enter a positive integer: ");
    digit = input.nextInt();
} while (digit <= 0);
input.close();

String sdigit = digit + "";
int sum=0;       

for (int i = 0; i < sdigit.length(); i++){
    System.out.println(sdigit.charAt(i));
    sum = sum + (sdigit.charAt(i) - '0');
}

System.out.println("Sum is : "+sum);
int位;
扫描仪输入=新扫描仪(System.in);
做{
System.out.println(“输入一个正整数:”);
数字=输入。nextInt();

}while(digit)您多次获得整数(多个数字)。尝试读取整数一次(不在循环中)。然后在循环中执行一些逻辑以获得单个数字。这将继续要求用户输入,除非并直到您输入一个非数字并中断程序(因为您获得的是
nextInt()
)@mrid No,如果输入了正数,它将停止循环。这就是
while(digit@DM谢谢你纠正我:)为什么sum中的i=sum+(sdigit.charAt(i)-“0”);被我的程序读取为错误?我尝试使用将sdigit.charAt(i)添加到sum+=sdigit.charAt(i)中的想法但是它不起作用。你能解释一下为什么我必须添加-0吗?谢谢。除此之外,非常感谢你的帮助。sdigit.charAt(I)是字符类型而不是整数。你不能直接添加char和int。sdigit.charAt(I)减号“0”允许进行转换一个字符,后面是一个字符代码:表示该字符的数字。数字字符的顺序与自然数字顺序相同(“0”的字符代码中的“1”为+1,“2”为+2等),因此,如果使用字符数字减去“0”字符,则会得到它的索引还有一个问题。代码的最后一行中的i变量sum=sum+(sdigit.charAt(i)-“0”);在我运行程序之前显示了一个错误。当我按下它时,它表明我需要初始化I,我已经在for循环中完成了初始化。为什么会发生这种情况?我只需要在它之前擦除sysout行。非常感谢您的帮助!
int digit;
Scanner input = new Scanner(System.in);

do {
    System.out.println("Enter a positive integer: ");
    digit = input.nextInt();
} while (digit <= 0);
input.close();

String sdigit = digit + "";
int sum=0;
for (int i = 0; i < sdigit.length(); i++){
    System.out.println(sdigit.charAt(i));
    sum = sum + Integer.parseInt(sdigit.subString(i,i+1));
}

System.out.println("Sum is : "+sum);
int digit;
System.out.println("Enter a positive integer: ");
number= Integer.parseInt(System.console().readLine());

int sum=0;
int currDigit = 0;
while( number / 10 > 0) {
    currDigit  = number % 10; //fetching last digit
    System.out.println(currDigit);
    sum = sum + currDigit;
    number = number / 10;
}