English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

R ループ

時には、同じコードブロックを複数回実行する必要があることがあります。一般的には、文は順序に実行されます:関数の最初の文がまず実行され、次に2番目の文、その後さらに続きます。

プログラミング言語は、より複雑な実行経路を持つ多くの制御構造を提供します。

ループ文は、文や文のグループを複数回実行する許可を与え、以下はほとんどのプログラミング言語のループ文のフローチャートです:


R言語が提供するループの種類には:

  • repeatループ

  • while  ループ

  • for    ループ

R言語が提供するループ制御文には:

  • break文

  • Next文

ループ制御文は、コードの実行順序を変更し、コードのジャンプを実現できます。

ループの種類

repeat

repeatループは、条件文がfalseになるまでコードを実行し続け、退出するにはbreak文を使用します。

语法形式は以下の通りです:

repeat { 
    // 関連コード 
    if(condition) {
       break
    }
}

以下の例では、変数cntが 5 条件がfalseの場合にループを退出し、cntはカウント変数です:

v  ,
cnt  
 
   v
   cnt  cnt
   
   cnt

上記のコードを実行すると、入力結果が以下のようになります:

[1] "Google" "w3codebox
[1] "Google" "w3codebox
[1] "Google" "w3codebox
[1] "Google" "w3codebox

while

与えられた条件がtrueの場合、R言語のwhileループ文は、目的の文を繰り返し実行します。

语法形式は以下の通りです:

while(condition)
{
   statement(s);
}

ここでは、statement(s)は、単一の文または複数の文からなるコードブロックであることができます。

conditionは任意の表現式であり、任意の非ゼロ値がtrueとされる場合があります。条件がtrueの場合、ループを実行します。条件がfalseの場合、ループを退出し、プログラムの流れはループの次の文に続きます。

以下の例では、変数 cnt が 7 の時に while 文のブロック内の内容を出力します、cnt はカウント変数です:

v  ,
cnt  
 cnt   
   v
   cnt  cnt

上記のコードを実行すると、入力結果が以下のようになります:

[1] "Google" "w3codebox
[1] "Google" "w3codebox
[1] "Google" "w3codebox
[1] "Google" "w3codebox
[1] "Google" "w3codebox

for

R プログラミング言語の for ループ文は、指定されたステートメントを繰り返し実行し、繰り返し回数は for 文で制御できます。

语法形式は以下の通りです:

for (value in vector) {
    statements
}

R 言語の for ループは非常に柔軟で、整数変数だけでなく、文字ベクトル、論理ベクトル、リストなどのデータ型に対してもイテレーションを行うことができます。

以下の例の出力 26 文字が前の 4 文字に対して:

v  
  i  v 
   i

上記のコードを実行すると、入力結果が以下のようになります:

[1] "A"
[1] "B"
[1] "C"
[1] "D"

ループ制御

break

R 言語の break 文は、ループ内に挿入され、現在のループまたはステートメントを退出し、スクリプトの次のステートメントを実行します。

ループのネストを使用している場合、break 文は最も内側のループの実行を停止し、外側のループの次のステートメントを実行します。

break は switch 文中でもよく使用されます。

语法形式は以下の通りです:

break

以下の例では、変数 cnt が 5 の時に break を使用してループを退出し、cnt はカウント変数です:

v <- c("Google","w3codebox" cnt <- 2 repeat {   print(v)   cnt <- cnt+1     if(cnt > 5) {      break   } }

上記のコードを実行すると、入力結果が以下のようになります:

[1] "Google" "w3codebox
[1] "Google" "w3codebox
[1] "Google" "w3codebox
[1] "Google" "w3codebox

next

next 文は、現在のループをスキップし、次のループを開始します(他の言語の continue に似ています)。

语法形式は以下の通りです:

next

以下の例の出力 26 文字の前に 6 文字が D の場合、現在のループをスキップし、次のループに進みます:

v  
  i  v 
   
    i     
      
   
   i

上記のコードを実行すると、入力結果が以下のようになります:

[1] "A"
[1] "B"
[1] "C"
[1] "E"
[1] "F"