我正在尝试在R中创建一个函数,用户必须猜测1到100之间的数字,直到它正确为止,但最多7次

时间:2019-03-08 09:10:36

标签: r function loops input

我必须在R中创建一个函数,程序在该函数中选择一个介于1到100之间的数字,并要求用户进行猜测。如果它太低,则它返回“太低”;如果它太高,则返回“太高”;如果在7猜测用户仍然错时,我停止该功能。

我完成了该功能,但是7次后却找不到停止它的方法!!我想放置一个for循环,但不知道有人在哪里可以帮助我?

guess <- function(g) {
  ran <- sample(1:100, 1)
  if (g < ran) {
    print("Too low")
    m <- readline("Type number again:")
    num <- as.numeric(m)
  } else if (g > ran) {
    print("Too high")
    m <- readline("Type number again:")
    num <- as.numeric(m)
  } else if (g == ran) {
    print("Correct")
  }
}

1 个答案:

答案 0 :(得分:0)

这是一个刺路:

guess <- function(g) {
  counter <- 1
  ran <- sample(1:100, 1)
  while(counter < 8) {
    if (g < ran) {
      print(paste0("Too low (No. of attempts: ", counter, ")"))
      m <- readline("Type number again:")
      g <- as.numeric(m)
      counter <- counter + 1
    } else if (g > ran) {
      print(paste0("Too high (No. of attempts: ", counter, ")"))
      m <- readline("Type number again:")
      g <- as.numeric(m)
      counter <- counter + 1
    } else if (g == ran) {
      print("Correct")
      opt <- options(show.error.messages=FALSE)
      on.exit(options(opt))
      stop()
    }
  }
  print(paste0("You've run out of attempts! Correct answer was: ", ran))
}

此方法通过设置计数器并使用while循环允许七次尝试来完成您想要的事情。如果超过此数字,则退出循环并显示相应的错误消息。为了方便起见,在每次尝试后和失败的情况下,我还添加了一些文本信息。