조건

조건문 에서 Ruby

22개의 연습 문제

조건문 소개

Ruby에는 흐름 제어 표현식이라고 하는 것이 있어요. 이 표현식은 프로그램이 실행되는 방식을 제어하는 데 사용되고, 참 같은 값이나 거짓 같은 값을 가져요. 참 같은 값이나 거짓 같은 값을 만드는 데 사용할 수 있는 연산자들도 있는데, 이런 연산자를 비교 연산자라고 해요.

프로그램에서 어떤 코드가 실행되고 어떤 코드는 실행되지 않을지, 즉 어떤 분기가 실행될지를 제어하는 주요 제어 표현식은 두 가지예요. 그 두 가지는 if와 unless 표현식이에요.

비교 연산자

비교 연산자는 값을 비교해서 true나 false 값을 반환하는 데 사용해요. 다음 연산자들은 같은 타입의 두 값을 비교해야 해요. 값의 타입이 서로 다르면 컴파일러가 오류를 발생시켜요. 다음은 연산자 목록과, true 값을 반환하는 예시예요:

메서드 설명 예시
< 보다 작음 4 < 5
<= 작거나 같음 4 <= 4
> 보다 큼 3 > 1
>= 크거나 같음 2 >= 2

같음과 다름 연산자는 앞에서 언급한 연산자들과 달리 어떤 타입의 값이든 비교할 수 있어요. == 연산자는 두 값이 같은지 확인하는 데 사용되는데, 값의 타입까지 확인해요. !=도 같은 방식으로 동작하지만, 두 값이 다르면 true를, 같으면 false를 반환해요. 다음은 같음과 다름 연산자 목록과, true 값을 반환하는 예시예요:

메서드 설명 예시
== 같음 4 == 4
!= 다름 5 != 4

결합 비교 연산자

결합 비교 연산자(때때로 우주선 연산자라고도 불려요)는 특별한 비교 연산자예요. 참 같은 값이나 거짓 같은 값이 아니라 숫자를 반환한다는 점에서 특별해요. <=>로 쓰고, 두 값을 비교하는 데 사용해요. 왼쪽 값이 오른쪽 값보다 크면 1을, 왼쪽 값이 오른쪽 값보다 작으면 -1을, 두 값이 같으면 0을 반환해요.

1 <=> 2 # => -1
2 <=> 2 # => 0
3 <=> 2 # => 1

if 문

if 문은 주어진 조건이 "참 같은 값"인지 "거짓 같은 값"인지 확인하는 데 사용해요. 조건이 참 같은 값이면 if 문 안의 코드가 실행돼요. if 문은 end 키워드로 끝나요.

value = 1
if value == 1
  "1 is equal to 1"
end
# => "1 is equal to 1"

if value > 2
  "1 is greater than 2"
end
# => nil

unless 문

unless 문은 if 문과 아주 비슷하게 동작하지만, 조건이 거짓 같은 값일 때 unless 문 안의 코드를 실행해요.

value = 1
unless value == 1
  "1 is not equal to 1"
end
# => nil

unless value > 2
  "1 is not greater than 2"
end
# => "1 is not greater than 2"

else 문

else 문은 if 문과 함께 사용할 수 있어요. if 분기가 실행되지 않으면 else 문이 실행돼요.

value = 1
if value == 1
  "1 is equal to 1"
else
  "1 is not equal to 1"
end
# => "1 is equal to 1"

if value > 2
  "1 is greater than 2"
else
  "1 is not greater than 2"
end
# => "1 is not greater than 2"

"연쇄 if" 문

elsif 문은 if 문과 함께 사용할 수 있어요. if 분기가 실행되지 않았고 elsif 문의 조건이 참 같은 값이면 elsif 문이 실행돼요. elsif 문은 여러 개를 이어 붙일 수 있고, 조건이 참이 되는 첫 번째 분기가 실행돼요. if 문 끝에 else 문을 둘 수도 있는데, 앞의 문들이 모두 참이 아니면 이 else 문이 실행돼요.

value = 1
if value == 0
  "1 is equal to 0"
elsif value > 2
  "1 is greater than 2"
else
  "1 is not equal to 0 and 1 is not greater than 2"
end
# => "1 is not equal to 0 and 1 is not greater than 2"

접미사로 쓰는 if와 unless

if와 unless 문은 [접미사][if-as-suffix]로도 쓸 수 있어요. 조건이 참일 때 코드 한 줄만 실행하고 싶을 때 유용해요. 실행하려는 코드 뒤에 if나 unless 문을 붙이면 돼요.

value = 1
"1 is equal to 1" if value == 1
# => 1 is equal to 1

"1 is not equal to 1" unless value == 1
# => nil
GitHub에서 편집 링크가 새 창이나 탭에서 열려요

조건문 배우기

연습이 잠겨 있어요

조건문 개념을 연습하려면 연습 문제 10개를 더 잠금 해제해요