while true条件には「true」が設定されています。whileは条件がtrueの間、繰り返しますから、これは「永遠に繰り返す」ことになります。では、繰り返しから抜けるにはどうするのでしょうか。それが、以下の条件部分です。
if x < y / 2 thenここでは、yの値がxの半分より大きくなったら「break」を実行しています。このbreakは、現在実行中の構文を抜け出る働きをするものです。繰り返しから抜け出るための条件は1つしか設定できませんから、複雑な繰り返し処理の場合は、このように必要に応じて条件をチェックしbreakするとよいでしょう。
break
end
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
a = 12300 x = a y = 2 puts(a.to_s + "の素因数") while true if x % y == 0 then x /= y puts(y) else y += 1 end if x / 2 < y then break end end if x > 1 then puts(x) end
<< 前へ |