게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
[루아 이야기] 3. 루아의 기본적인 문법을 익혀보아요.
게시물ID : humorbest_841194짧은주소 복사하기
작성자 : 달빛연구자
추천 : 25
조회수 : 2985회
댓글수 : 3개
베스트 등록시간 : 2014/02/20 14:21:33
원본글 작성시간 : 2014/02/19 00:29:12
안녕하세요.
달빛연구자 입니다.

이번 화에서는 루아의 가장 기본이 되는 문법을 익혀볼 거에요.
음... 많지는 않고요.. 우선은  아래의 3가지 에요.

1. if  : 만약 ~ 라면
2. for : ~동안 ~하다
3. io.read : 읽다

...

미리 말씀드리는데 영어 문법이 아니에요.  루아입니다 루아!

1. if
 if는 조건을 나타내는 부사절...이 아니라 제어문으로 어떠한 조건에 해당할 때 자신이 가진 코드를 실행하는 역할을 합니다.
문법은 아래와 같아요.
-- if 조건 then 실행구문 end

ex 1) 절대로 실행되지 않는 if 문
if문.png

이 프로그램을 실행시키면 아무런 출력을 하지 않아요. if와 then 사이에 있는 '1 == 2' 라는 부분은 1과 2가 같다 라는 조건인데요.
당연하게도 두 숫자는 같지 않기 때문에 조건은 거짓이 되고 해당 조건이 참인 경우에만 실행되는 then과 end 사이의 문장들은 실행이 안되게 되죠.

다음은 조금 난이도를 올려 볼께요. 이 경우에는 출력이 될까요 안될까요?
ex 2) 변수를 사용한 if 문
if문과변수.png

정답은 출력이 됩니다 입니다.
위 소스 코드의 2번 라인에 조금 생소한 것이 있어요 ?!
i = 2
네 이것이 변수에 숫자를 대입하는 부분 이에요. 마치 수학의 방정식과 마찬가지로, 프로그래밍에서는 어떤 변수에 자신이 원하는 정보를 담을 수 가 있거든요.
a와 b가 같다라는 의미의 비교구문이 (a == b) 였죠? 마찬가지로 i = 2라고 하면, 2를 i에 대입한다라는 의미가 되요.
그래서 이후부터는 i를 2 대신 사용할 수 있는 것에요.

1. for 
 for는 어느 일정한 구간을 반복하는데 사용되요. 문법은 아래와 같아요.
-- for i=1,도착값,증감치 do 실행구문 end
이 구문은 i가 도착값보다 커질 때 까지 실행구문을 실행하고요. 한번 반복을 할 때 마다 i가 증감치 만큼씩 커져요.
무슨 말 이냐고요? 일단 예제를 한번 볼께요.

ex 3) i가 2씩 증가하는 for문
for문.png

위쪽의 창이 소스코드이고 아래쪽의 창이 실행 결과에요. 
이제와서 SciTE 에디터의 비밀을 하나 공개하자면, 소스파일을 저장한 후에는 화면 상단에 있는 빨간 네모칸의 버튼이 사용 가능하게 되요. 이것을 사용하면, 에디터에서 직접 프로그램을 돌려서 결과를 확인할 수 있어요.
자.. 위의 결과를 보면, print(i)가 5회 반복이 되었고, 한번 반복될 때 마다 i가 증감치인 2씩 증가하는 것을 확인 할 수 있어요.

내가 정해준 동작을 컴퓨터가 알아서 반복해 준다니 참 편리한 구문이죠? :)

이제 for문을 이용해서 1에서 100까지 더해주는 프로그램을 한번 만들어 보도록 할께요.
ex 4) 1에서 100까지 더해주는 프로그램
sum1to100.png

이전의 프로그램과 크게 달라진 것이 없어요. 단지 result 라는 변수에 i의 값을 계속해서 더해준 것일 뿐 이에요.
값을 모두 더한 후 result의 값을 출력해 보니 5050이 되어 있네요. 정답입니다. :)
이런 어려운 계산을 순식간에 하다니.. 컴퓨터는 정말 대단하네요.

3. io.read()
 우리는 지금까지 컴퓨터가 기억하고 있는 정보를 보기 위해 print() 라는 함수를 사용했어요.
 그렇다면 반대로 사람이 원하는 문자나 숫자를 컴퓨터한테 입력할 수는 없을까요?
 ... 네 뜸들일 것 없죠. 그것을 위한 io.read() 함수랍니다.
이번에는 io.read()함수를 사용해서 사람이 입력한 범위의 숫자를 모두 더하는 프로그램을 작성해 볼께요.

ex 5) 사용자가 입력한 범위의 숫자를 모두 더하는 프로그램
입력추가.png

출력 결과가 똑같은 것 처럼 보이지만 출력 화면에 있는 1과 100은 제가 입력한 숫자 랍니다. :)
제가 1과 100을 입력했기 때문에 컴퓨터가 1과 100사이의 숫자를 모두 더한 결과를 출력해 준 것이죠.

코드를 잠깐 분석해 볼께요.
2번 3번 라인에 num_start라는 변수와 num_end라는 변수가 추가되었네요.
io.read()함수는 사용자의 입력(저의 입력입니다 ^^;)을 받아들이고, 이것을 각각 num_start와 num_end라는 변수에 저장합니다.
이 변수들이 각각 for문에 사용되어서 num_start와 num_end 숫자 사이의 합을 구하는 부분이 되었어요.
구해진 합은 result라는 변수에 대입되어서 print() 함수에 의해 출력이 되었어요.

자.. 여기까지 오느라 고생 많으셨어요. 
여러분은 이제 루아를 사용해서 프로그래밍의 기초문법인 입력, 출력, 조건, 반복 대입을 할 수 있게 되었어요.
기초문법이라고 하면 별것 아닌 것 같지만, 프로그램이라는 것은 기초적인것이 모이고 쌓여서 만들어지는 것이니 그만큼 중요한 것이에요.

다음 글에서는 루아의 변수에 대해서 조금 더 자세하게 다루어 볼께요. (근데 다음 글.. 언제쯤 쓰려나.. -_-;;)
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호