簡體   English   中英

我的代碼有問題,但是我不確定這是什么嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM