[英]There is something wrong in my code but i'm not sure what it is?
我正在嘗試打印用戶輸入的數字的總和,我的代碼有什么問題? 在我看來,SOP中強調了這一點。 但是為什么呢? 以及如何解決?
package assignment7;
import java.util.Scanner;
public class Assignment7_4_5 {
public static void main(String[] args) {
Scanner input= new Scanner (System.in);
System.out.print("Enter a number: ");
int number=input.nextInt();
System.out.println("sum: "+sumDigits (sum));
}
public static int sumDigits(int sum) {
int number = 0;
while (number > 0) {
sum = sum + number % 10;
number = number / 10;
}
return sum;
}
}
您需要將sumDigits(sum)
更改為sumDigits(number)
因為number是您要傳遞給方法的變量,在使用方法sumDigits之前,甚至都不聲明變量sum。 同樣在該函數中,while循環將永遠不會執行,因為number設置為零並且條件是(number > 0)
永遠不會為true
。
您使用錯誤的方法求和和編號。 您需要輸入數字,因為這是您從用戶那里得到的。 總和需要初始化為0,而不是數字。 然后,您將增加總和並除以數字,完成后返回總和。 然后,您也不會跳過while循環!
package assignment7;
import java.util.Scanner;
public class Assignment7_4_5 {
public static void main(String[] args) {
Scanner input= new Scanner (System.in);
System.out.print("Enter a number: ");
int number=input.nextInt();
System.out.println("sum: "+sumDigits (number));
}
public static int sumDigits(int number) {
int sum = 0;
while (number > 0) {
sum = sum + number % 10;
number = number / 10;
}
return sum;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.