問題

残りの部分を実行せずに関数からジャンプするためのRにキーワードがあるかどうか疑問に思っています。 C、Java、またはMatlabには、キーワード 'return'があります。しかし、Rの 'return'キーワードはそれらの言語とは異なります。ここに例があります、

 myfunc = function() {
  if (TRUE) {
      return # hopefully, jump out of the function
  }
  print('the rest of the function is still executed!')
}
 

この例では、Javaのような言語は 'return'が満たされたときに 'rest'を実行しませんが、R 'return'はif文のスコープ内にのみ存在し、残りの関数はまだ実行されます。この特定の例では、それを達成するために 'else'ブロックを追加することができましたが、Javaなどのような動作を与えるキーワードがあるかどうかを知りたいと思います。ありがとう。

  ベストアンサー

あなたが示しているのは、実際には文法的に有効なRコードです...しかし、あなたはreturnに値を供給していないという間違いがあります。だからここに修正されたバージョンがあります:

 R> myfunc <- function() {
  if (TRUE) {
      return(NULL) # hopefully, jump out of the function
  }
  print('the rest of the function is still executed!')
}
myfunc <- function() {
+   if (TRUE) {
+       return(NULL) # hopefully, jump out of the function
+   }
+   print('the rest of the function is still executed!')
+ }
R> myfunc()
NULL
R> 
 

  同じタグがついた質問を見る

functionrreturn