我是Java新手,我的递归函数中有一个错误,当我将值10传递给它正常运行的函数并将10打印为0时。但当超过11时,它将从-37663(而不是从10开始)中断并打印值,并在-47865和stackOverFlow错误处结束。粘贴下面的代码。
公共类Apna2{
public static void main(String [] args ) {
printNumber(11);
}
public static void printNumber(int num ) {
System.out.println(num);
if(num==0)return;
printNumber(num-2);
}
}
public static void main(String [] args ) {
printNumber(11);
}
public static void printNumber(int num ) {
if(num<0){num=0;}; //If number is below 0 set 0. ...
System.out.println(num);
if(num==0)return; //That this condition would be true.
printNumber(num-2);
}
递归函数希望在值达到0时停止。然而,如果你有一个奇数(比如11),那么重复从中减去2就会得到满分:
11==0
为false,因此我们用9您需要检查您的号码是否仍然是正数,如果不是,请返回:
public static void printNumber(int num ) {
System.out.println(num);
if(num<=0)return;
printNumber(num-2);
}
当你通过11
时,顺序是11,9,7,5,3,1,-1,-3
。如果(num==0)返回,则基本情况
永远不会执行。这是一个无限递归。函数调用堆栈太大,无法放入允许的内存空间,因此会出现堆栈溢出错误。代码中的所有奇数都会发生这种情况。
问题内容: 因此,当我发现一些非常奇怪的东西时,我正在使用Node.js REPL和Underscore库。如果I ,则该变量是全局设置的(显然)。然后,当我尝试运行一个简单的命令时,它会打印出来(显然,再次)。但是,此后立即运行,因为变量设置为,它会打印。 为什么这样做呢?如果我从js文件运行相同的代码,则不会发生。这是正常的Node事情,还是全部错误? 仅供参考:节点v0.10.10 问题答案
安装问题 PS C:\Users\Administrator sharp@0.21.3安装C:\用户\管理员\gatsby-site3\node_modules\锐(节点安装/libvips 使用缓存的C:\Users\Administrator\AppData\Roaming\npm-cache\u libvips\libvips-8.7.0-win32-x64.tar.gz info shar
根据Java教程 将包装类型(整数)的对象转换为其相应的基元(int)值称为取消装箱。当包装类的对象为: 作为参数传递给需要相应基元类型的值的方法 分配给相应基元类型的变量 为什么在这种情况下会发生拆箱? 在这种情况下,这些事情发生在哪里?是否有管理数组中元素访问的底层方法?或者[]暗示某种变量?
关于这个问题的答案。对我来说,使用此代码时会发生错误。我想知道从catch块中准确地发生了哪种错误。您应该通过捕捉错误类型来实现这一点,但我在jsonObject文档中没有看到枚举的错误类型 在swift中有没有一种方法可以做到这一点,或者我如何找到一个对象抛出的异常?
我收到一个错误: /app处的OS错误/ [Errno 63]文件名太长:"/Users/XXX/test app/templates/jinja 2/{ ' items ':[{ '-':'-',' A': 'a ',' B': 'b ',' C: 'c ',' D': 'd'}]} 我想将json_parse方法的结果的<code>json_dict</code>嵌入到<code>视图中。将复
我关闭了我的android项目,突然当我想再次打开我的项目时,它给了我错误??? 错误:无法解析“:app@debugandroidtest/compileclasspath”的依赖项:无法解析AndroidX.test:runner:1.2.0. 错误:无法解析“:app@debugandroidtest/compileclasspath”的依赖项:无法解析Androidx.test.ext:J