Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.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,我试图打印用户输入的数字的总和, 我的代码出了什么问题?在我看来,S.O.P.中的金额有下划线。。 但为什么呢?我怎样才能修好它 package assignment7; import java.util.Scanner; public class Assignment7_4_5 { public static void main(String[] args) { Scanner input= new Scanner (System.in); Syst

我试图打印用户输入的数字的总和, 我的代码出了什么问题?在我看来,S.O.P.中的金额有下划线。。 但为什么呢?我怎样才能修好它

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;
    }

}

您需要将sumDigitssum更改为sumDigitsnumber,因为number是传递给方法的变量,在使用方法sumDigits之前,甚至不会声明变量sum。同样在函数中,while循环将永远不会执行,因为number被设置为零,并且条件为number>0,这永远不会为真。

您的求和和和编号方法是错误的。您需要传入数字,因为这是您从用户处获得的数字。Sum需要初始化为0(以sumdights表示),而不是数字。然后你们将总和加和除以数字,完成后返回总和。你也不会跳过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;
    }

}

数字应该在参数中,总和应该是本地变量您是否尝试编译代码?你得到了什么?这段代码甚至无法编译。您应该将读取的数字作为输入传递到helper函数sumdights中。顺便说一句,我很喜欢萨姆迪。只需修复main,它就会工作。不确定sumdights-您将number初始化为0,然后在大于0时运行循环。那个循环根本不会运行。编辑:是的,你的求和和和数字的方法是错误的。您应该传递数字,并将sum初始化为0-这是第一条注释所说的,您可能需要重新学习一些Java基础知识。在main方法中定义一个名为number的局部变量。这是您要在其上运行的号码。该方法需要一个int参数。它将在方法内部调用此参数sum。所以,要在number上运行sumdights,需要将其作为参数传递到方法中:sumDigitsnumber。在方法内部,这个参数由sum名称引用。