학습
Lua 입출력 함수
Lua 입출력 함수 — 초급
Lua 입출력 함수
1. 도입 (왜 배워야 하는가)
프로그램에서 사용자와 상호작용하는 것은 매우 중요합니다. 이때, 입력과 출력을 처리하는 입출력 함수가 필수적입니다. 예를 들어, 사용자로부터 정보를 입력받아 처리한 후 결과를 보여주는 전자상거래 사이트의 장바구니 시스템을 생각해 보세요. 이 과정에서 입력받은 데이터가 없으면 시스템이 제대로 작동하지 않으며, 출력이 없다면 사용자는 결과를 확인할 수 없게 됩니다. 따라서 입출력 함수의 이해는 프로그램의 기본적인 작동 원리를 이해하는 데 필수적입니다.
2. 핵심 개념 설명
입출력(Input/Output, I/O) 함수는 프로그램이 사용자와 데이터를 주고받을 수 있게 해줍니다. 다음은 Lua에서 자주 사용되는 입출력 함수입니다:
io.read(): 사용자로부터 입력을 받는 함수입니다.io.write(): 데이터를 출력하는 함수입니다.
비유하자면, io.read()는 친구에게 질문을 하는 것과 같고, io.write()는 친구에게 답변을 주는 것과 같습니다. 프로그램은 이 두 가지 기능을 통해 사용자와 소통하게 됩니다.
| 함수명 | 설명 |
|---|---|
io.read() | 사용자 입력을 받는 함수 |
io.write() | 출력하는 함수 |
3. 기본 코드 예제
다음 코드 예제는 사용자로부터 이름을 입력받고, 인사말을 출력하는 간단한 프로그램입니다.
-- 사용자에게 이름을 입력받기
io.write("이름을 입력하세요: ") -- 출력: 이름을 입력하세요:
local name = io.read() -- 사용자 입력을 받음
-- 인사말 출력
print("안녕하세요, " .. name .. "!") -- 출력: 안녕하세요, [입력한 이름]!
실행 결과:
이름을 입력하세요: 홍길동
안녕하세요, 홍길동!
코드 한 줄씩 동작 설명:
io.write("이름을 입력하세요: "): 사용자에게 이름을 입력하라는 메시지를 출력합니다.local name = io.read(): 사용자가 입력한 이름을name변수에 저장합니다.print("안녕하세요, " .. name .. "!"):name변수의 값을 이용하여 인사말을 출력합니다.- 입출력 함수는 사용자와의 상호작용을 담당합니다.
io.read()와io.write()를 사용하여 데이터를 주고받습니다.- 사용자 입력값의 타입 변환에 주의해야 합니다.
- 변수를 선언할 때 스코프를 고려해야 합니다.
4. 실전 활용 예제
예제 1: 계산기
쇼핑몰에서 장바구니의 총액을 계산하기 위해 두 개의 숫자를 입력받아 더하는 간단한 계산기 프로그램을 작성할 수 있습니다.
io.write("첫 번째 숫자를 입력하세요: ")
local num1 = tonumber(io.read())
io.write("두 번째 숫자를 입력하세요: ")
local num2 = tonumber(io.read())
local sum = num1 + num2
print("두 숫자의 합은: " .. sum)
예제 2: 사용자 정보 입력
사용자로부터 여러 정보를 입력받아 출력하는 프로그램입니다.
io.write("이름을 입력하세요: ")
local name = io.read()
io.write("나이를 입력하세요: ")
local age = io.read()
print("이름: " .. name .. ", 나이: " .. age)
5. 흔한 실수와 주의사항
1. 입력값의 타입
잘못된 코드:
io.write("숫자를 입력하세요: ")
local number = io.read() -- 문자열로 입력됨
print("숫자는 " .. number * 2) -- 에러 발생
올바른 코드:
io.write("숫자를 입력하세요: ")
local number = tonumber(io.read()) -- 숫자로 변환
print("숫자는 " .. number * 2) -- 정상 작동
입력값을 숫자로 변환하지 않으면 연산 시 에러가 발생합니다.
2. 변수 스코프
변수를 제대로 선언하지 않으면 사용할 수 없습니다. 잘못된 코드:
function greet()
print("안녕하세요, " .. name) -- 에러 발생
end
greet()
올바른 코드:
local name = "홍길동" -- 전역 변수로 선언
function greet()
print("안녕하세요, " .. name)
end
greet()
변수의 스코프를 잘 이해하고 사용해야 합니다.
6. 정리
다음에 학습하면 좋은 주제는 "Lua 테이블"입니다. 테이블은 Lua의 기본 데이터 구조로, 복잡한 데이터를 다루는 데 유용합니다.