问题描述
我必须创建一个程序来接受用户的输入(数字),并且我需要对所有数字求和。如果数字为负,则不计入。我必须使用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)
{
}
}
解决方法
到目前为止,我已经了解到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());
}
您的isValid()
应该看起来像
if (num < 0)
throw new Exception("Negative Number");
return true;