구 원트노/루비 기초

[루비 기초]2장 연산자와 제어문

연산자

연산자란 연산에 있어서 행해지는 동작을 나타내는 기호를 의미합니다.
연산의 종류에 따라 산술 연산, 비교 연산, 대입 연산 등이 있습니다.


= : 할당 연산자입니다.

1
2
a=1
b="likelion"
cs

=는 일반적으로 우리가 사용하는 "같다"의 의미가 아니라 변수에 값을 할당하는 연산자입니다.


다음으로는 비교 연산자입니다.

프로그래밍에서 비교는 값들이 같은지, 다른지 , 큰지 ,작은 지를 비교하고 

그의 답으로 true와 false를 리턴합니다.


== : 2개의 값이 같은지 확인하는 연산자입니다.

1
2
puts 1==2 #false
puts 3==3 #true
cs

할당 연산자인 = 와 주의해서 사용하셔야 합니다.


!= : 값이 다른지 확인하는 연산자입니다.

1
2
puts 1!=2 #true
puts 3!=3 #false
cs

!는 부정을 의미합니다. ==의 부정을 의미하며 결과는 반대로 생각하면 됩니다.


>, <, <=, >= : 부등호입니다. 이상, 이하, 미만, 초과를 확인하는 연산자입니다.

1
2
3
4
puts 1<2  #true
puts 3>3  #false
puts 4<=4 #true
puts 6>=9 #false
cs

=는 항상 오른쪽에 있다는 부분만 주의해주면 됩니다.


<=> : 복합 연산자입니다.

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

좌항이 우항보다 작다면 -1, 같다면 0, 크다면 1을 리턴합니다.

복합 연산자를 사용할 때는 좌항이 자신이라고 생각하고 

우항이 더 크다면 손해라서 -1, 같다면 0, 자기가 더 크다면 이득이니 1이라고 이해하면 쉽습니다.


&& : and 연산자입니다.

1
2
3
4
true && true   #true
true && false  #false
false && true  #false
false && false #false
cs

논리곱 연산자로 수식의 양 변이 모두 참일 때만 true를 리턴합니다.


|| : or 연산자입니다.

1
2
3
4
true || true   #true
true || false  #true
false || true  #true
false || false #false
cs

논리합 연산자로 수식의 한 변만 참이어도 true를 리턴합니다.


! : not 연산자입니다.

1
2
!true  #false
!false #true
cs

논리 부정 연산자로 반대의 결과를 리턴합니다.


제어문

앞에서 배운 연산자를 통해서 프로그램의 흐름을 변경시켜 프로그램을 제어시킵니다.
주어진 조건에 따라 다르게 동작된다고 해서 조건문이라고도 합니다.


if 조건문 

1
2
3
if 1 < 2
    puts "Likelion"
end
cs

if 뒤에 조건이 나오고 조건이 참이라면 그 다음 구문이 실행됩니다.

참이 아니라면 end 다음 부터 실행됩니다.


else 명령문

1
2
3
4
5
6
if 3 < 2
    puts "Likelion"
else
    puts "Liketiger"
end
#Liketiger 
cs

else 명령문은 if 명령문의 파트너입니다.

if 수식이 true면 else까지의 코드가 실행되고

false면 else에서 end까지 구문이 실행됩니다.


elsif 명령문

1
2
3
4
5
6
7
8
if 3 < 2
    puts "Likelion"
elsif 3 > 2
    puts "Liketiger"
else
    puts "Likefish"
end
#Liketiger 실행됨
cs

만약 두 가지 이상의 조건이 있을 경우 elsif를 사용합니다.

elsif를 사용하면 얼마든지 조건을 추가할 수 있습니다.


unless

1
2
3
4
unless 3 < 2
    puts "Likelion"
end
#Likelion 
cs

수식이 참인지를 확인하는게 아니라 

거짓인지를 확인하는 구문입니다.


case-when

1
2
3
4
5
6
7
8
a=10
 
case a
    when 5 then puts "a는 5입니다."
    when 10 then puts "a는 10입니다."
    else "a는 5와 10이 아닙니다."
end 
# a는 10입니다. 
cs

좀 더 많은 조건식을 사용할 때 유용한 조건문 방식입니다.

a가(case) 무엇일 때(when) 그러면(then) 다음을 실행하라

이러한 구조라고 생각하면 됩니다.

위의 코드 상에서는 a가 10이므로 puts "a= 10입니다."가 실행이 됩니다.

else는 when 중에 적합한 경우가 없을 때 실행이 됩니다.




궁금하신 점 있으시면 댓글 남겨주세요!!