Вместо print(...); name1=scan(...)
я бы использовал readline
следующим образом:
while (!nzchar(name1 <- readline("Name Player 1: "))) TRUE
# Name Player 1: <-- me just hitting <enter>
# Name Player 1: <-- again
# Name Player 1: r2evans
name1
# [1] "r2evans"
Вы можете предпочесть максимальное количество неудачных попыток, хотя вместо того, чтобы требовать от пользователя прерывания процесс с ctrl-c
, поэтому, возможно:
tries <- 3L
while (tries > 0 && !nzchar(name1 <- readline("Name Player 1: "))) tries <- tries - 1L
# Name Player 1:
# Name Player 1:
# Name Player 1:
И l oop просто остановился / вышел. Вы «знаете», что пользователь решил выйти, потому что после l oop, tries == 0L
и !nzchar(name1)
оба указывают на намерение пользователя.