2017-11-05 1 views
2

私が作業している質問に関連してリピートループを行っています: " iを1に設定してください。私は今何の価値がありますか?Rの中で `repeat`ループを使うには

ここに私のコードは、これまでのところだ

i <- 1 

repeat{ 
    print(i) 
    i <- i*2 
    if(i > 100) break 
} 

私は上記のコードを実行し、上記のコードと出力が正しい場合は今、私は疑問に思って、次の出力

[1] 1 
[1] 2 
[1] 4 
[1] 8 
[1] 16 
[1] 32 
[1] 64 

を得ましたか。 もしそうでなければ、誰も私にこのことを手伝ってもらえますか?何が間違っていますか?

+0

ここではwhileループがより適用可能かもしれません。 –

+1

i = 64かi = 128のどちらの答えが期待されますか? – Heikki

答えて

1

あなたは確かに質問で必要とされるほとんどの要素を持っています。ここに一つの考えがあります。「今はどんな価値がありますか?」それは休憩の直前の意味ですか?それとも、繰り返しの終了後に意味するのでしょうか?終了後であれば、繰り返し終了後に別のprint文が必要です。ブレーク前の値を知りたければ、条件テストの後にprintステートメントが必要です。

+0

私は、breakコマンドが見つかるまで値が繰り返されると思います。それが問題のポイントです –

1

ハランのコメントに加えて、質問文「iが100より大きくなるまでiを2倍にするループ」は、でもはあいまいです。それは2つのことのいずれかを意味する可能性があります。

  1. 2倍の数値です。 100より大きい場合は終了します。
  2. 数値が100より大きい場合は終了します。それ以外の場合は2倍にします

これら二つの解釈は、この特定の場合に異なる最終値を与えるが、異なるコードで(ループ内のコードが複雑であった場合には、結果が異なる可能性がある)ことはありません。あなたは最初の変種を実装しています。

関連する問題