libro
www.tuyano.com
初心者のためのRubyプログラミング入門

基本的な構文を覚えよう (4/4)

作成:2012-08-13 10:17
更新:2012-08-13 10:17

■制御構文を組み合わせて使おう

では、一通りの構文を覚えたところで、これらを使ったプログラムを作ってみましょう。制御構文の基本がわかれば、けっこう複雑そうに思える処理も作ることができるようになります。

ここでは簡単な例として、数の素因数分解を行わせてみましょう。素因数分解というの、覚えていますか? 中学ぐらいでやったはずですが……。整数を、素数の掛け合わせに分解する、あれです。例えば、12ならば、2×2×3に分解する、というものですね。

下にスクリプトを挙げておきました。最初の変数aへ代入する整数値をいろいろと書き換えて、動作を確認してみましょう。ちゃんと計算できていますか?

ここでは、繰り返しにちょっとおもしろいワザを使っています。繰り返し部分を見てみると、このように条件設定がされていますね。
while true
条件には「true」が設定されています。whileは条件がtrueの間、繰り返しますから、これは「永遠に繰り返す」ことになります。では、繰り返しから抜けるにはどうするのでしょうか。それが、以下の条件部分です。
if x < y / 2 then
    break
end
ここでは、yの値がxの半分より大きくなったら「break」を実行しています。このbreakは、現在実行中の構文を抜け出る働きをするものです。繰り返しから抜け出るための条件は1つしか設定できませんから、複雑な繰り返し処理の場合は、このように必要に応じて条件をチェックしbreakするとよいでしょう。


今回、説明した3つの構文だけで、こうした処理はちゃんと作れるようになります。実をいえば、制御構文というのはこれがすべてではありません。繰り返しについては他にもあるのですが、それを利用するためには「配列」といったものを理解しないといけないので今回は省略しています。まずはこの3つの構文だけ自在に使えるようになりましょう。

※プログラムリストが表示されない場合

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

※関連コンテンツ

「初心者のためのRubyプログラミング入門」に戻る