Основной вопрос R - обновляемый ввод в цикле while - PullRequest
0 голосов
/ 09 ноября 2018

все еще находится на стадии обучения 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 голосов
/ 09 ноября 2018

Разобрался с проблемой. Спасибо 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,"."))
0 голосов
/ 09 ноября 2018

Ваш цикл while основан на условии, когда enterednum != 0. Однако в цикле while вы не обновляете enterednum - это означает, что это бесконечный цикл и он никогда не остановится. Было бы здорово, если вы измените условие остановки на newnum != 0 или обновите enterednum внутри цикла.

Надеюсь, что вышеупомянутое помогает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...