是何道理?
def f(x) if x == 0 f(x)==0 # return 0 else f(x)==1 # return 1 end end puts "x=" x=gets().to_i print f(x)
执行报错:stack level too deep
如果按注释中的写法,则没问题。
死循环了,你这个代码是书上看来的?
def f(x) if x == 0 f(x)==0 # return 0 #這是一個判斷語句,只會返回 true 或者 false,但是運行這個語句需要重新調用 f 方法本身,也就是保存當前狀態,然後回到頂部重新運行,所以死循環了唄 else f(x)==1 # return 1 end end
谢~
可以问下,楼主是从哪门编程语言过来的么?
弱弱地说:小时候学的 basic 和学校里学的 fortran 算么……