输入直到输入正数

时间:2019-03-05 19:12:08

标签: java

取两个整数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。

1 个答案:

答案 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++;
   }
  }