public class Main1
{
public static void main(String[] args)
{
printNumbers(7, 3);
}
public static int printNumbers(int numValue, int rows) {
for (int i = 0; i < rows; i++) {
int x = (int)(Math.random() * 10);
System.out.print(x);
if (numValue == x && i < rows) {
System.out.println(" ");
} else if (i < rows) {
System.out.print(x);
}
}
return printNumbers(7, 3);
}
}
它应该打印随机数,直到达到numvalue,然后它创建一个新行,并且有指定数量的行。虽然我放了3行,但这段代码仍然运行无限行。我一定错过了什么。我对制作方法还很陌生,这是我自己第一次尝试。
3条答案
按热度按时间kxkpmulp1#
此方法将无条件地调用
printNumbers(7,3)
当它回来的时候。从外观上看,您甚至不需要返回值-将返回类型更改为void
,放下return
声明,你应该没事:bvuwiixz2#
每个递归方法都应该有终止条件。我更新了同一个程序,使其正常工作,当随机数达到numvalue时,程序终止
//产量:66003311997
j8ag8udp3#
递归逻辑中没有中断/终止条件,这会导致循环无限期运行。