R 为什么stopifnot没有按预期工作?
我想输出水果用户输入的数量,若它是。多少(“香蕉”,5) 多少香蕉 错误:水果编号>编号不正确R 为什么stopifnot没有按预期工作?,r,function,break,conditional-statements,R,Function,Break,Conditional Statements,我想输出水果用户输入的数量,若它是。多少(“香蕉”,5) 多少香蕉 错误:水果编号>编号不正确 stopifnot实际上是指它所说的:“如果不(…)就停止”。(4>5)不是真的。所以它停止了。您需要相反的符号。您的测试是反向的。您需要指定一个不停止的真值(正如它所说的,stopifnot) 多少 how.many<-function(fruit, number){ string<-paste("How many",fruit,"?",sep=" ") #cat(string)
stopifnot
实际上是指它所说的:“如果不(…)就停止”。(4>5)不是真的。所以它停止了。您需要相反的符号。您的测试是反向的。您需要指定一个不停止的真值(正如它所说的,stopifnot)
多少
how.many<-function(fruit, number){
string<-paste("How many",fruit,"?",sep=" ")
#cat(string)
#return(scan(string))
fruit_number<-readline(string)
stopifnot(fruit_number>number)
stopifnot(fruit_number<0)
return(fruit_number)
}
How many banana ?0
Error: fruit_number > number is not TRUE
> how.many("banana",5)
How many banana ?9
Error: fruit_number < 0 is not TRUE
> how.many("banana",5)
How many banana ?4
Error: fruit_number > number is not TRUE
how.many<-function(fruit, number){
string<-paste("How many",fruit,"?",sep=" ")
#cat(string)
#return(scan(string))
fruit_number<-readline(string)
stopifnot(fruit_number<=number)
stopifnot(fruit_number>=0)
return(fruit_number)
}
> how.many("banana", 5)
How many banana ?9
Error: fruit_number <= number is not TRUE
> how.many("banana", 5)
How many banana ?4
[1] "4"