使用递归获得正整数

时间:2016-11-15 00:19:56

标签: recursion

我很困惑我想从用户使用递归得到一个积极的int,用户可以输入单词,也可以输入数字。(单词和负数无效),不确定我做错了什么。 对不起忘了问这个问题,好吧我得到编译器错误,当我尝试编译它时,我的扫描仪出了问题,我正在阅读它说我必须使用参数为用户输入,我我不确定如何,第二个问题是,如果用户输入n <0或一个单词(如税),我该如何让代码重复。谢谢

import java.util.*;

public class Recursion {


private static int getPositiveInt(Scanner keyboard) {
Scanner keyboard = new Scanner(System.in);
System.out.println("Please enter a positive interger, n");
int n = keyboard.nextInt();


  if (n > 0) {

  return n;
}
 else { //here the code  should rerun if invalid input, but I cant figure it     out
System.out.println("enter a positive number");
} 
}
}

1 个答案:

答案 0 :(得分:1)

如果我正确理解了您的问题,您希望此功能运行,直到它将读取有效数字。 要做到这一点,您需要改变的是:

else { //here the code  should rerun if invalid input, but I cant figure it     out
System.out.println("enter a positive number");
}

为:

else { 
//call the function again
return getPositiveInt(Scanner keyboard)
}