以下の関数では、最初の 3 つの選択肢 (1 ~ 3 に等しくない値) 以外の値が入力された場合、関数が元の質問にループバックするように入力を制御したいと思います。
T<-function(){
Load<-readline("
Choose Task
1 Task 1
2 Task 2
3 Task 3 ")
for(i in 1:10){
if(Load=="")
{print.noquote("No Value Entered"); Load<-readline("
Choose Task
1 Task 1
2 Task 2
3 Task 3 ")
}else
if(Load==1)
{source("/Users/JD/Desktop/R1.R")}
else
if(Load==2)
{source("/Users/JD/Desktop/R2.R",print.eval=TRUE)}
else
if(Load==3)
{source("/Users/JD/Desktop/R3.R",print.eval=TRUE)}
else
{print.noquote("Must enter 1-3"); ** loop back to "Choose Task"**}
}}
したがって、** がある場所は、コードの 2 行目にループバックする行になります。私はすでに「空白」の応答を制御しましたが、1〜3に等しくないものについても同様のことをしたいと思います. ループバックが許可されていない場合は、同じ効果を得る別の方法がある可能性があります。