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

学生向けにプログラミングを無料で解説。Java、C++、Ruby、PHP、データベース、Ruby on Rails, Python, Django

Ruby | 09 | 論理演算

↓↓クリックして頂けると励みになります。



08 | for】 << 【ホーム】 >> 【10 | case


論理演算を利用した複雑な条件分岐
論理演算を利用した複雑な条件分岐


Rubyの論理演算は、条件や値の真偽を扱うための演算です。
主な論理演算子は以下の通りです。

&&(論理積、AND):両方の条件が真の場合に真を返します。
||(論理和、OR):どちらかの条件が真の場合に真を返します。
!(論理否定、NOT):条件を反転させます。

これらの演算子は、真偽値 (trueまたはfalse) を扱うためのものです。
Rubyでは、nilとfalse以外の値は真と見なされます。




Visual Studio Codeで以下のプログラムを作ってみましょう。


新規作成 【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点増えます。
それ以外なら、ゲームオーバーの表示と獲得したスコアの合計が表示されます。


実行するごとに結果が違うので何回かやってみてください。

~/Desktop/Programming/RB $ ruby iftest3.rb 
最初の挑戦です。
成功です。50ポイントを獲得しました。
2回目の挑戦です。
残念。ゲームオーバーです。
あなたのスコアは50点です。

~/Desktop/Programming/RB $ ruby iftest3.rb
最初の挑戦です。
成功です。50ポイントを獲得しました。
2回目の挑戦です。
成功です。50ポイントを獲得しました。
あなたのスコアは100点です。



Visual Studio Codeで以下のプログラムを作ってみましょう。


新規作成 【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(偽)になります。


実行結果を確認してみます。

~/Desktop/Programming/RB $ ruby iftest4.rb 
false&&false = false



Visual Studio Codeで以下のプログラムを作ってみましょう。


新規作成 【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(真)になります。


何回か実行して、結果を確認してみてください。

~/Desktop/Programming/RB $ ruby iftest5.rb
false || true = true

~/Desktop/Programming/RB $ ruby iftest5.rb
false || false = false



08 | for】 << 【ホーム】 >> 【10 | case




↓↓クリックして頂けると励みになります。