if 문

 

루아의 if 문은 다음의 형식을 사용한다.

 

if 조건 then 코드 end

 

루아를 메인 언어로 사용하는 경우는 많지 않을 것이라 생각해서 비교를 해보면

 

이종 언어간에 문법에는 사용하는 단어가 일부 차이가 난다. 하지만 변수를 비교하고 불린형의 값을 받아서 코드를 실행시킬지 말지에 대하여 결정하는 내용은 같다. 약간의 단어 차이는 언어의 창시자(개발자)의 스타일을 반영한 부분도 없지않아 있다.  창시자의 모국어, 언어 습관들에 영향이 있다고 본다.

 

우리가 사용하는 C계열이라는 대부분의 언어는 C언어를 개발한 데니스 리치의 스타일이다. 물론 데니스 리치도 벨연구소에서 기존의 B언어를 가지고 C언어를 만들었기 때문에 오래전부터 프로그래밍의 관습과 전통을 계승한 것 이다.

 

사실 뭐 if 문이라고 해서 특별한 것은 아니다. 그래서 영어가 아니라 우리말로 상식적으로 생각해봤다.

 

1. 조건이 있다.

 

2. 조건을 통과하면 실행한다.

 

3. 아니면 블록을 건너뛴다.

 

한글로 if 문법을 만든다면 (수도 알고리즘)

 

조건 ( a 는 1 과 같다) 그러면

{

    여기를 실행한다

}

 

이렇게도 만들 수 있고

 

조건 (a와 1은 동일)

시작

    여기를 실행한다.

 

이렇게도 만들 수 있다. 흠... 확실히 한글로 하니까 머리에 더 잘들어온다. 영어 사용자들이 이런 느낌일까 싶다.

 

루아는 후자쪽에 가깝다. { } 중괄호 대신 then end 를 선택했다. 다음의 예제를 보자.

 

a = 1

if a == 1 then
    print("a는 1과 같다")
end

if a == 0 then
    print("a는 0과 같다")
end

if a <= 1 then
    print("a는 1보다 작거나 같다")
end

if a >= 2 then
    print("a는 2보다 크거나 같다")
end

 

if ... else 문

if ... else 문은 if 문이나 else 둘 중 하나가 선택되는 것이다. if문은 조건이 안맞으면 건너뛰는데 if else 문은 둘중 하나는 무조건 실행한다는 특징이 있다.

 

* 결과는 직관적이다. else에는 별도 조건이 필요없다. if의 조건문에 따라 결정되기 때문이다.

a = 0

if a == 1 then
    print("a는 1과 같다")
else
    print("a는 1과 같지 않다")
end

 

elseif 문

elseif 은 if문 다음에 나올 수 있다. if elseif else 문이 하나의 체인으로 연결되어 있는데 차례로 조건식을 검사하여 첫번째 참에 해당하면 그 블록의 코드를 실행시키고 전체의 체인을 벗어난다. 즉 이들 중에 하나만 실행한다.

 

아래와 위에서 부터 내려오는 조건을 검사할 때 사용할 수 있다.

 

score = 85

if score >= 90 then
    print(score .. "점은 A등급입니다.")
elseif score >= 80 then
    print(score .. "점은 B등급입니다.")
elseif score >= 70 then
    print(score .. "점은 C등급입니다.")        
else
    print(score .. "점은 F등급입니다.")
end

if then else 문

형식이 차이가 나지만 하나의 블록이 실행되면 종료한다는 것은 같다.

score = 85

if score >= 90 then
    print("A등급입니다")
    else if score >= 80 then
        print("B등급입니다")
    else
        print("C등급입니다")
    end
end

 

*루아에는 switch case 문이 없으므로 if문을 활용한다.

공유하기

facebook twitter kakaoTalk kakaostory naver band