学生向けプログラミング入門

学生向けにプログラミングを解説。Java、C++、Ruby、PHP、データベース

Rubyプログラミング入門その7 複雑な条件分岐

<<前  [TOP]  次>>


メモ帳を開いて次のプログラムを作ってみましょう。


【iftest3.rb】

# iftest3.rb

score = 0

puts '最初の挑戦です。' 

if rand(0.1..0.9) > 0.5 then
	puts '成功です。50ポイントを獲得しました。' 
	score = score + 50

	puts '2回目の挑戦です。'

	if rand(0.1..0.9) > 0.5 then
		puts '成功です。50ポイントを獲得しました。' 
		score = score + 50 
	else
		puts '残念。ゲームオーバーです。' 
	end

else 
	puts '残念。ゲームオーバーです。'

end

puts 'あなたのスコアは' + score.to_s + '点です。'



ランダムに出てくる値が0.5より大きかったらスコアが50点ずつ増えていきます。
次も0.5より大きかったらまた50点増えます。
それ以外なら、ゲームオーバーの表示と獲得したスコアの合計が表示されます。


実行するごとに結果が違うので何回かやってみてください。
f:id:MrRadiology:20180113103031p:plain


メモ帳を開いて次のプログラムを作ってみましょう。


【iftest4.rb】

# iftest4.rb

b1 = rand(0.1..0.9) > 0.5 
b2 = rand(0.1..0.9) > 0.5 

if b1 then
	if b2 then 
		b3 = true
	else
		b3 = false
	end
else
	if b2 then
		b3 = false
	else
		b3 = false
	end
end

puts b1.to_s + '&&' + b2.to_s + ' = ' + b3.to_s



b1とb2の両方が0.5より大きかった場合のみtrue(真)となり、それ以外はfalse(偽)となります。


&&は論理積で、”かつ”の意味があります。
両方ともtrue(真)の場合のみtrue(真)になります。
どちらかがtrue(真)であれば、結果がtrue(真)になります。
逆に言うと、どちらもfalse(偽)の場合、結果がfalse(偽)になります。


実行結果を確認してみます。
f:id:MrRadiology:20180113104547p:plain


メモ帳を開いて次のプログラムを作ってみましょう。


【iftest5.rb】

# iftest5.rb

b1 = rand(0.1..0.9) > 0.5 
b2 = rand(0.1..0.9) > 0.5 

if b1 then
	if b2 then
		b3 = true
	else
		b3 = true
	end
else
	if b2 then
		b3 = true
	else
		b3 = false
	end
end

puts b1.to_s + ' || ' + b2.to_s + ' = ' + b3.to_s



b1かb2のどちらかが0.5を越えていればtrueとなり、どちらとも越えていないときだ けfalseとなります。


「||」は論理和のことです。
どちらかがtrue(真)ならばtrue(真)になります。


何回か実行して、結果を確認してみてください。
f:id:MrRadiology:20180113111615p:plain


<<前  [TOP]  次>>