【发布时间】:2018-01-12 07:25:33
【问题描述】:
我想做一个输入,它接受 1 - 10 的数字并打印范围。
我需要检查输入是否为整数(检查),检查范围是否为 0-10(检查),如果不是这些,请再次询问用户。那么,递归方法?
目前我有这个:
import java.util.Scanner;
import java.util.InputMismatchException;
public class FinalTest {
public static void main (String [] args) {
Scanner in = new Scanner(System.in);
int k = 0;
System.out.print("int - ");
try {
k = in.nextInt();
} catch (InputMismatchException e) {
System.out.println("ERR: Input");
System.exit(1);
}
if(k <= 10 && k > 0) {
for(int j=1; j <= k; j++) {
System.out.println(j);
}
} else {
System.out.println("ERR: Oob");
System.exit(1);
}
}
}
我想替换“System.exit()”,以便它再次尝试要求用户输入。
调用main(); 会产生错误。
这种情况下如何正确调用main方法?
【问题讨论】:
-
我建议一个循环。
-
你不需要递归。只需使用一个循环。见:The
whileanddo-whileStatements -
把它粘在一个循环里。或者将逻辑放入一个函数中并递归调用该函数。
-
为了它的价值,你可以使用递归方法,但你不应该这样做。一个简单的循环就足够了
while(don't have valid answer){ask for answer} -
是循环它:While(不正确){}
标签: java loops recursion methods