为了账号安全,请及时绑定邮箱和手机立即绑定

如何编写一个可以不断询问用户输入直到输入满足运行代码的特定要求的程序?

如何编写一个可以不断询问用户输入直到输入满足运行代码的特定要求的程序?

开满天机 2022-05-21 20:23:19
我必须编写一个程序,首先请求 0 < N < 20 范围内的整数。超出此范围的数字将被拒绝并发出新请求。输出从 1 开始到 N 结束的数字序列的总和。我已经得到了大部分代码,但我不能不断地要求用户输入,直到输入满足要求。我尝试在第 11 行使用“return”,但是在获得另一个输入后它不会返回循环。我现在该怎么办?import java.util.*;class ExamTesterNine{  public static void main(String args[]){   Scanner kbReader= new Scanner(System.in);   int num=kbReader.nextInt();   System.out.println("Enter an integer smaller than 20 and larger than 0");   int result;   int sum=0;   if (!(num>0&&num<20)){     return;   }else{     for(int i=1; i<=num; i++)   sum=sum+i;   int [] number= new int [num];   for (int a=0; a<(number.length-1); a++ ){     number[a]=a+1;     System.out.print(number[a]+"+");}   System.out.print(num+"="+sum);   }  }}
查看完整描述

3 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

IT 应该很容易使用do-while. 我现在不在我的编译器上,但是如果你使用扫描仪,你应该在你的代码中添加这个


import java.util.*;

class ExamTesterNine{

public static void main(String args[]){

Scanner kbReader= new Scanner(System.in);

int num = 0;

System.out.println("Enter an integer smaller than 20 and larger than 0");

  do{

     num=kbReader.nextInt();

   } while(num<0 && num <20);


   int result;

   int sum=0;


   for(int i=1; i<=num; i++)

   sum=sum+i;


   int [] number= new int [num];

   for (int a=0; a<(number.length-1); a++ ){

     number[a]=a+1;

     System.out.print(number[a]+"+");}

   System.out.print(num+"="+sum);

   }


  }

}

如果不能,请告诉我,我可以快速进入编译器,但这do-while是您的解决方案。


查看完整回答
反对 回复 2022-05-21
?
临摹微笑

TA贡献1982条经验 获得超2个赞

您将需要一个while循环,因为您不知道会输入多少次错误输入


while (true) {

  System.out.println("Enter an integer smaller than 20 and larger than 0");

  int num=kbReader.nextInt(); // get input

  // test

  if (goodInput (num)) {

      break;

  }

}


查看完整回答
反对 回复 2022-05-21
?
倚天杖

TA贡献1828条经验 获得超3个赞

import java.util.*;

class ExamTesterNine{

static int num;

public static void readInput() {

     System.out.println("Enter an integer smaller than 20 and larger than 0");

       Scanner kbReader= new Scanner(System.in);

       num=kbReader.nextInt();

       if (!(num>0&&num<20)){

           ExamTesterNine.readInput();

       }else {

           calculate(num); 

       }

   }

public static void calculate(int sum) {

    for(int i=1; i<=num; i++)

           sum=sum+i;

           int [] number= new int [num];

           for (int a=0; a<(number.length-1); a++ ){

             number[a]=a+1;

             System.out.print(number[a]+"+");}

           System.out.print(num+"="+sum);

}


  public static void main(String args[]){

  int result;

  int sum=0;

  ExamTesterNine.readInput();

    }

 }


 Are you expecting this?

  Out put:Enter an integer smaller than 20 and larger than 0

  23

  Enter an integer smaller than 20 and larger than 0

  34

  Enter an integer smaller than 20 and larger than 0

  56

  Enter an integer smaller than 20 and larger than 0

  45

  Enter an integer smaller than 20 and larger than 0

  15

  1+2+3+4+5+6+7+8+9+10+11+12+13+14+15=135


查看完整回答
反对 回复 2022-05-21
  • 3 回答
  • 0 关注
  • 87 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信