#!/usr/bin/ruby

a = 100

# if

if a == 100 then
  puts "It's 100."
end

if a == 100 # 'then'은 생략해도 됩니다.
  puts "It's 100."
end

if a == 100 then # if - else
  puts "It's 100."
else
  puts "It's not 100."
end

if a == 100 then # if - elsif - else
  puts "It's 100."
elsif a == 200 then
  puts "It's 200."
else
  puts "It's not 100 nor 200."
end


# 삼항연산자 ?:

v = (a==100) ? 1 : 2;


# unless

unless a==10 then # 물론 then은 생략할 수 있고요. else문도 함깨 사용할 수 있습니다.
  puts "not 10!"
end

# if / unless 모디파이어

a += 1 if a.zero? # if나 unless를 표현식의 뒤에 붙여 사용할 수 있습니다.
a -=1 unless a.zero?


# case - when

case a # switch-case 가 아니라 case-when입니다.
  when 1,2 then puts "Need more"
  when 3 then puts "Ok."
  else puts "Enough."
end


case "1234"
  when /^1/ then # 정규표현식을 사용해봅시다.
    puts "It starts with one."
  else
    puts "It's not start with one."
end


# while

while a<10 do # 'do'는 생략해도 됩니다.
  a++
end

# until

until a>10 do # 'do'는 생략해도 됩니다.
  a++
end


# for-in

for value in [1,2,3] do # 'do'는 생략해도 됩니다.
  puts value
end


# while / until 모디파이어

a += 1 while a<10

a -=1 until a<10

begin
  a += 1
end while a<10 # begin-end 블록으로 묶으면 가독성이 향상됩니다.


# break / next / redo

while true do
  # do something
  next if a.even? # next를 사용해서 다음 차례로 진행합니다.
  redo if b=100 # redo는 현재 차례를 다시 한 번 반복합니다.
  break if a<10 # break를 사용해서 루프를 벗어납니다.
end


# loop

loop do
  # do something
end



END{
  # https://ruby-doc.org/3.2.2/syntax/control_expressions_rdoc.html
}
