我不得不编写一个程序,其中返回读取的正数的总和,并将读取用户的输入,直到输入零。返回正数的总和
我到目前为止没有计算输入正数的总和,我需要一些帮助。
这是我到目前为止有:
readAndSumPositives()
(注意到你给出的扫描仪,不使用System.in) - 从用户读取,直到给出0,并返回正数的总和读。
实例:
♦用户输入:0 =>返回0
♦用户输入1 2 3 0 =>返回6(1 + 2 + 3)
♦用户输入1 - 2 3 0 =>返回6(1 + 3,跳过-2因为它是负的)
public static int readAndSumPositives(Scanner in,PrintStream out)
{
int input;
int count;
int sum;
int total;
sum = 0;
count =0;
total = sum+count;
out.println("Please enter a number");
input=in.nextInt();
while(input != 0 && input != -2 && input != -3 && input != -4) {
sum += input;
count++;
out.println("Enter your next positive number");
input=in.nextInt();
}
if (input == 0) {
return sum;
} else return input;
}
这里是正在执行的代码,当我在GitBash
运行该方法private static int readAndSumPositivesFrom(String input) {
ByteArrayOutputStream out_bs = new ByteArrayOutputStream();
PrintStream out=new PrintStream(out_bs);
Scanner in_s = new Scanner(new ByteArrayInputStream(input.getBytes()));
int ans = Assignment5.readAndSumPositives(in_s,out);
in_s.close();
return ans;
}
@Grade(points = 20)
@Test
public void testReadAndSumPositives() {
Assert.assertEquals(30, readAndSumPositivesFrom("10 20 0 "));
Assert.assertEquals(20, readAndSumPositivesFrom("10 -20 10 0 "));
Assert.assertEquals(10, readAndSumPositivesFrom("1 2 -2 3 -3 4 -4 0 "));
}
任何帮助被赞赏和点将被授予!
在此先感谢。
*我到目前为止没有执行...下面是正在执行的代码... *这个问题有点混乱。 – shmosel
我的意思是它没有计算输入正数的总和。 – rls1982
你的意见是什么?输出是什么?预期产出是多少? – shmosel