LotosLabo

プログラミング技術とか気になった情報を載せていきます

Ruby言語について2

変数

変数名 =  オブジェクト

num = 10
str = "Hello"
x = 1 + 2

出力

print num + str + x
print(num + str)



プログラムは上から下にながれる特性があり、
val = 10
print(val)
val = "こんにちは"
print(val)

出力

こんにちは



<演算も可能>
num1 = 10
num2 = 8

sum = num1 + num2
sum1 = num1 + 2

自己代入

例:

num = 10
num = num + 1

num = 10
num += 10

多重代入

x,y,z = 10,11,12
x,y,z = "あ", "い", "う”

値を入力しないと  nil が代入される

条件分岐 (if文)


if 条件式 then
条件式が真の時に実行する処理1
条件式が真の時に実行する処理2
end


例:
x = 10+3
if x = 13 then
print "そうだね"
end

thenを省略しても構わない

関係演算子

a == b   bがaに等しい
a != b   bがaに等しくない
a > b   bよりaが大きい
a >= b   bよりaが大きいか等しい
a < b   bよりaが小さい
a <= b   bよりaが小さいか等しい

例:

num = 18
if num == 20 then
  print "numは20と等しい"
end


color = "Red"
color1 = "Red"
if color ==  color1  then
 print "カラーは赤です"
end


num = 4
num1 = 6
if num <= num1 then
 print 'num1はnumより大きい'
end

論理演算子


演算子 記述例     意味
 &&  a && b  aとbが共に真の場合に真  
 ||   a || b   aかbの少なくとも1つが真の場合に真
 !    !a    aが真の時に偽、偽の時に真


例:

old = 25
if  old  < 40    &&   old >  20 then
print "年齢は20から40までです"
end



oldは 40より小さいか、それとも 20より大きいか?

if - else


if 条件式 then
条件式が真の時に実行する処理1
条件式が真の時に実行する処理2
else
条件式が偽の時に実行する処理1
条件式が偽の時に実行する処理2
end


例:

amari = 10 % 3
if amari == 0 then
  print("割り切れました\n")
else
  print("割り切れませんでした\n")
  print("余りは", amari, "です\n")
end



elsif


if 条件式1 then
条件式1が真の時に実行する処理
elsif 条件式2 then
条件式1が偽で条件式2が真の時に実行する処理
elsif 条件式3 then
条件式1及び条件式2が偽で条件式3が真の時に実行する処理
else
全ての条件式が偽の時に実行する処理
end

Rubyでは else ifではなく elseif


例:

city = "Nagoya"
if city == "Tokyo" then
  print("東京です")
elsif city == "Osaka" then
  print("大阪です")
elsif city == "Nagoya" then
  print("名古屋です")
else
  print("その他の都市です")
end


unless文

ifでは 主に trueを吐き出していたがunlessでは falseを最初に出力

unless 条件式 then
条件式が偽の時に実行する処理
end


unless 条件式 then
条件式が偽の時に実行する処理
else
条件式が真の時に実行する処理
end


例:

old = 40
unless old < 20 then
  print("20歳以上ですのでご利用できます")
end


case文


一つのモノに対して複数の組み合わせで行う

case 対象オブジェクト
when 値1 then
値1と一致する場合に行う処理
when 値2 then
値2と一致する場合に行う処理
when 値3 then
値3と一致する場合に行う処理
else
どの値にも一致しない場合に行う処理
end


例:

sum = 0
product = "Apple"
case product
when "Melon" then
  sum = sum + 500
when "Apple" then
  sum = sum + 150
end
print("料金は", sum, "です")


条件演算子


条件式 ? 真の時の値 : 偽の時の値

result = 80
flag = result > 50 ? "合格" : ”不合格"

※ここでこの50と?の空白が重要になる

if修飾子


真の時に実行する式 if 条件式

print("num = ", num) if debug
if debug then
print("num = ", num)
end

偽の時に実行する式 unless 条件式