我想写一个if语句,在满足某个条件之前会继续重复一个问题
像这样的东西:
fun<-function(){
x<-readline("what is x? ")
if(x>5)
{print("X must be less than 5")
**repeat lines 3 & 4**
}else{
print("Correct")}
}
Run Code Online (Sandbox Code Playgroud)
抱歉** - 但我不确定如何正确写出该行.我想要做的是每次输入大于5的数字时都要重复提示"什么是x",直到给出小于5的数字.理论上,功能看起来像这样
fun()
what is x? 6
X must be less than 5
what is x? 8
X must be less than 5
what is x? 3
Correct
Run Code Online (Sandbox Code Playgroud)
我不太确定你正在使用的语言,但像while循环这样的东西应该这样做.
fun<-function(){
x<-readline("what is x? ")
while(x>5)
{
print("X must be less than 5")
x<-readline("what is x? ")
}
print("Correct")}
}
Run Code Online (Sandbox Code Playgroud)
readline返回一个字符向量,所以你需要在它之前将它强制转换为数字if.然后你可以使用while循环(正如其他人指出的那样).
fun <- function() {
x <- as.numeric(readline("what is x? "))
if(is.na(x)) stop("x must be a number")
while(x > 5) {
print("X must be less than 5")
x <- as.numeric(readline("what is x? "))
if(is.na(x)) stop("x must be a number")
}
print("Correct")
}
Run Code Online (Sandbox Code Playgroud)