猿问

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

我必须编写一个程序,首先请求 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);

   }


  }

}


开满天机
浏览 88回答 3
3回答

慕尼黑的夜晚无繁华

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");&nbsp; do{&nbsp; &nbsp; &nbsp;num=kbReader.nextInt();&nbsp; &nbsp;} while(num<0 && num <20);&nbsp; &nbsp;int result;&nbsp; &nbsp;int sum=0;&nbsp; &nbsp;for(int i=1; i<=num; i++)&nbsp; &nbsp;sum=sum+i;&nbsp; &nbsp;int [] number= new int [num];&nbsp; &nbsp;for (int a=0; a<(number.length-1); a++ ){&nbsp; &nbsp; &nbsp;number[a]=a+1;&nbsp; &nbsp; &nbsp;System.out.print(number[a]+"+");}&nbsp; &nbsp;System.out.print(num+"="+sum);&nbsp; &nbsp;}&nbsp; }}如果不能,请告诉我,我可以快速进入编译器,但这do-while是您的解决方案。

临摹微笑

您将需要一个while循环,因为您不知道会输入多少次错误输入while (true) {&nbsp; System.out.println("Enter an integer smaller than 20 and larger than 0");&nbsp; int num=kbReader.nextInt(); // get input&nbsp; // test&nbsp; if (goodInput (num)) {&nbsp; &nbsp; &nbsp; break;&nbsp; }}

倚天杖

import java.util.*;class ExamTesterNine{static int num;public static void readInput() {&nbsp; &nbsp; &nbsp;System.out.println("Enter an integer smaller than 20 and larger than 0");&nbsp; &nbsp; &nbsp; &nbsp;Scanner kbReader= new Scanner(System.in);&nbsp; &nbsp; &nbsp; &nbsp;num=kbReader.nextInt();&nbsp; &nbsp; &nbsp; &nbsp;if (!(num>0&&num<20)){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ExamTesterNine.readInput();&nbsp; &nbsp; &nbsp; &nbsp;}else {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;calculate(num);&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}&nbsp; &nbsp;}public static void calculate(int sum) {&nbsp; &nbsp; for(int i=1; i<=num; i++)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sum=sum+i;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;int [] number= new int [num];&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (int a=0; a<(number.length-1); a++ ){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;number[a]=a+1;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;System.out.print(number[a]+"+");}&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;System.out.print(num+"="+sum);}&nbsp; public static void main(String args[]){&nbsp; int result;&nbsp; int sum=0;&nbsp; ExamTesterNine.readInput();&nbsp; &nbsp; }&nbsp;}&nbsp;Are you expecting this?&nbsp; Out put:Enter an integer smaller than 20 and larger than 0&nbsp; 23&nbsp; Enter an integer smaller than 20 and larger than 0&nbsp; 34&nbsp; Enter an integer smaller than 20 and larger than 0&nbsp; 56&nbsp; Enter an integer smaller than 20 and larger than 0&nbsp; 45&nbsp; Enter an integer smaller than 20 and larger than 0&nbsp; 15&nbsp; 1+2+3+4+5+6+7+8+9+10+11+12+13+14+15=135
随时随地看视频慕课网APP

相关分类

Java
我要回答