取两个整数p&q ...将p的总和打印到包括p。的下一个q数字上。如果q <= 0,则它将再次取q的值...
输入:::: 3 2 输出:::: 7(p = 3&q = 2 .....所以从3到下一个2个数字是3&4,因为它将包括在总和中...现在我们必须打印3 + 4就是7)
输入::: 4 -1 1 输出::: 4(因为下一个数字是4)
这意味着我们必须从所取整数...开始计数。
解决它,并将解决方案放在这里……
import java.util.Scanner;
public class Ahmed {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int p=sc.nextInt();
int q=sc.nextInt();
int sum=0;
if(q>=0){
for(int i=1; i<=q ;i++) {
sum=p+sum;
p++;
}
}
else{
q=sc.nextInt();
for(int i=1; i<=q ;i++) {
sum=p+sum;
p++;
}
}
System.out.println(sum);
}
}
如果我采用输入4 -1 -1,则出现错误。循环将继续,直到我让q输入一个正数或0;
正确输入4 -1 -1 2输出9。
答案 0 :(得分:1)
通常,当我们有一个循环而又不知道它会重复多少次时,我们可以使用while
。
创建如下函数:
private int readPositiveInt(Scanner sc){
int i = -1
while (i <= 0) {
i = sc.nextInt();
}
return i;
}
然后,将代码行int q=sc.nextInt();
替换为:
int q = readPositiveInt(sc);
最后,一旦q确定为正,您可以删除以下行:
else{
q=sc.nextInt();
for(int i=1; i<=q ;i++) {
sum=p+sum;
p++;
}
}