Java 总数没有计算,我不知道如何使用布尔值是有效的抛出异常

Java 总数没有计算,我不知道如何使用布尔值是有效的抛出异常,java,exception,boolean-operations,Java,Exception,Boolean Operations,我必须创建一个接受用户输入(数字)的程序,我需要对所有数字求和。如果数字为负数,则不计算。我必须使用boolean isValid方法并抛出异常 public class Assignment { private static int num; public static void main(String[] args) throws Exception { Scanner scn = new Scanner(System.in); Ass

我必须创建一个接受用户输入(数字)的程序,我需要对所有数字求和。如果数字为负数,则不计算。我必须使用boolean isValid方法并抛出异常

public class Assignment
{
    private static int num;
    public static void main(String[] args) throws Exception
    {
        Scanner scn = new Scanner(System.in);
        Assignment a = new Assignment();
        System.out.println(a.isValid(num));             
    }

    public boolean isValid(int num) throws Exception
    {
        boolean isValid = false;
        int sum = 0;
        int i;
        Scanner scn = new Scanner(System.in);
        System.out.println("Enter the number:");
                
        try
        {  
            num =scn.nextInt();
            for(i=0;i<5;i++)
            {
                if (num>0)
                {
                    num=scn.nextInt();
                    sum+=num;
                    i++;
                }
                System.out.println("Enter the number:" +sum);
            }
            return isValid;
        }
        catch (Exception e)
        {
        }
    }
公共类赋值
{
私有静态int-num;
公共静态void main(字符串[]args)引发异常
{
扫描仪scn=新扫描仪(System.in);
分配a=新分配();
System.out.println(a.isValid(num));
}
公共布尔值isValid(int num)引发异常
{
布尔值isValid=false;
整数和=0;
int i;
扫描仪scn=新扫描仪(System.in);
System.out.println(“输入编号:”);
尝试
{  
num=scn.nextInt();
对于(i=0;i0)
{
num=scn.nextInt();
sum+=num;
i++;
}
System.out.println(“输入数字:“+sum”);
}
返回有效;
}
捕获(例外e)
{
}
}

到目前为止,我理解了一件事,
boolean isValid()
不是用于计算总和,而是用于检查输入的有效性。也就是说,我们需要将每个输入传递给函数,并检查它是否为正数。如果是,则返回
true
,如果不是,则返回
false
和/或引发异常。 您的
main()
应该如下所示

Assignment a = new Assignment();
int size = scn.nextInt(), sum = 0;
try {
     for (int i = 0; i < size; i++) {
         int input = scn.nextInt();
         if (a.isValid(input)) {
             sum += input;
         }
     }
     System.out.println(sum);
}

catch (Exception e) {
      System.out.println(e.getMessage());
}

您认为当前代码的作用是什么?我建议你试着逐行注释你的代码,你会很快发现有很多错误。我可以告诉您,现在,您的代码要求用户提供一组数字,然后每次都打印false,因为您从未接触过
isValid
变量。isValid返回值的逻辑是什么?什么时候是假的,什么时候是真的。那么总数呢?打印出来就行了?实际上我并不理解isValid变量。。你能解释一下吗?请给我们解释一下思考的过程和预期的结果。我该怎么办?我想它会检查某种类型的有效数字,但什么才是有效数字呢?实际上,这个程序会要求用户输入数字,布尔值是有效的方法用来检查数字是否为负数,如果它是有效的,哪个为正数,它将被计算并与其他数字相加。它是,我们必须首先定义booelan isValid=false?@NurhafizaAzman,然后您可以将
isValid
的值更新为
true
并返回它,而不是按原样返回
true
。我看不到
isValid
变量的任何其他潜在用途。我已经输入了输入(1,2,3,-9和5),输出提示数字为负数。如果我只想计算正数,我该怎么办?好的,我已经得到了answr,非常感谢
if (num < 0)
    throw new Exception("Negative Number");
return true;