基本的R问题-while循环中的可更新输入

时间:2018-11-09 04:30:28

标签: r

仍处于R的学习阶段。尝试设置一段基本代码,使我可以让用户输入数字,直到他们输入“ 0”为止,这时程序将对各项求和并显示给用户。这是我到目前为止的内容:

    print ("Enter a number.enter 0 when finished")
    enterednum <-as.integer(readLines(con=stdin(),1))
    finalnum = 0

    while (enterednum != 0){
      print ("Enter another number. enter 0 when finished");
      newnum <-as.integer(readLines(con=stdin(),1));
      finalnum <- (enterednum + newnum)
    }
    print(paste("The sum of your numbers is", finalnum,"."))

练习的重点是使用while语句。虽然While语句的错误条件(输入“ 0”)有效,但任何时候初始输入不是0时,在while语句之后的任何行我都会收到调试错误。一直在扭动我的大脑并在这里挖掘,但无法弄清楚。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:0)

您的while循环基于enterednum != 0时的条件。但是,在while循环中,您不会更新enterednum-这意味着它是一个无限循环,并且永远不会停止。如果您将停止条件更改为newnum != 0或在循环内更新enterednum,那就太好了。

希望以上帮助。

答案 1 :(得分:0)

找出问题所在。感谢S. Zhong和GordonShumway的提示!更正了下面的工作代码。

print ("Enter a number.enter 0 when finished")
enterednum <-as.integer(readLines(con=stdin(),1))
finalnum <- 0

while (enterednum != 0){
  finalnum = (finalnum + enterednum)
  print ("Enter another number. enter 0 when finished");
  enterednum <-as.integer(readLines(con=stdin(),1));
}

print(paste("The sum of your numbers is", finalnum,"."))