【发布时间】:2018-06-13 20:40:52
【问题描述】:
y <- as.integer(readline(prompt ="Enter a number: "))
factorial = 1
if (y< 0){
print("Error")
} else if (y== 0)
{
print("1")
} else
{
for(i in 1:y) {
factorial = factorial * i
}
return(factorial)
}
想知道为什么会这样:
if (y
是不是因为第一行的数据类型为NA_integer?
【问题讨论】:
-
请使您的示例可重现。你把
y设置成什么? -
你没有定义函数所以你不需要返回任何东西,试试把
return(factorial)改成factorial -
@zack 似乎不会导致
if语句中的错误。 -
@Roman 当我输入一个导致它实际评估该行的值时,它是给我的:
Error: no function to return from, jumping to top level。 @seun - 当您运行此代码时,请确保y不是NA,如果您运行if语句,它将无法为您提供TRUE或FALSE值。
标签: r if-statement boolean na missing-data