重复函数中的上一行,直到满足if语句

Vin*_*woo 2 r

我想写一个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)

Gab*_*ker 6

我不太确定你正在使用的语言,但像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)


Jos*_*ich 5

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)