Menu
CoddyTech

pairs()를 사용한 순회

Coddy Lua 여정의 논리와 흐름 제어 섹션에 포함된 레슨. 54개 중 1번째.

Lua에서 사전 형태의 테이블을 다룰 때는 테이블에 저장된 모든 키-값 쌍에 접근해야 하는 경우가 많습니다. pairs() 함수를 사용하면 키의 유형과 관계없이 테이블의 모든 항목을 반복할 수 있습니다.for 반복문에서 pairs()를 사용하는 문법은 다음과 같습니다.
for key, value in pairs(myTable) do
    -- 여기서 key와 value를 사용하세요
end
반복문의 각 반복에서 pairs()는 키와 이에 해당하는 값을 모두 제공합니다. 즉, 두 정보를 동시에 가져와 사용할 수 있습니다.플레이어의 인벤토리를 활용한 실용적인 예시입니다:
local inventory = {
    sword = 1,
    potion = 5,
    gold = 150
}

for item, quantity in pairs(inventory) do
    print(item .. ": " .. quantity)
end
이 코드는 각 항목의 이름과 수량을 출력합니다. pairs() 함수는 문자열, 숫자 또는 다른 테이블을 포함한 모든 키 유형에서 작동합니다.도전 과제: 문자열 만들기아래 과제에서는 모든 항목을 하나의 문자열로 반환해야 하므로, 기초 과정에서 배운 문자열 도구 두 가지를 다시 살펴보겠습니다. 연결 연산자인 두 개의 점(..)을 사용해 문자열을 이어 붙입니다. 예를 들어 "Hello" .. " " .. "World"는 "Hello World"가 됩니다.텍스트를 여러 줄에 걸쳐 표시해야 한다면 줄바꿈 이스케이프 문자 "\n"를 사용할 수 있습니다. Lua는 문자열 안의 "\n"를 만나면 이를 다음 줄로 이동하라는 명령으로 처리합니다.예를 들어, print("Line 1\nLine 2")는 다음을 출력합니다:
Line 1
Line 2
challenge icon

챌린지

쉬움

항목과 수량을 모두 나열한 형식화된 문자열을 반환하는 함수 printInventory를 작성하세요. 이 함수는 inventory 테이블을 인수로 받습니다.

pairs()를 사용해 인벤토리 테이블을 순회하고, 각 줄에 항목 이름과 그 뒤에 수량이 item: quantity 형식으로 표시되는 문자열을 만드세요. 각 항목은 별도의 줄에 표시해야 합니다.

각 항목을 별도의 줄에 표시하려면 항목 사이에 개행 문자 "\n"를 사용하세요. 예를 들어, "apple: 5\nbanana: 3"은 두 줄로 표시됩니다. 첫 번째 항목 앞에 "\n"을 추가하지 않도록 주의하세요. 항목 사이에만 추가하세요.

매개변수:

  • inventory (table): 키가 항목 이름(문자열)이고 값이 수량(숫자)인 사전 형식의 테이블

반환값: 각 항목과 수량이 별도의 줄에 표시되고 "\n"으로 구분된 문자열입니다. {apple=5, banana=3}의 출력 예시:
apple: 5
banana: 3

직접 해보기

function printInventory(inventory)
    -- 출력 형식을 지정하려면 '..' 연산자를 사용해 문자열을 이어 붙일 수 있습니다.
    -- 새 줄을 추가하려면 특수 문자 '\n'을 사용하세요.
    -- 첫 번째 항목을 추가하는지, 그다음 항목을 추가하는지 추적할 방법이 필요할 수 있습니다.
    -- 항목 앞에 줄바꿈을 추가할지 결정하기 위해서입니다.
    
    -- 여기에 코드를 작성하세요
end
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

논리와 흐름 제어의 모든 레슨

직접 연습해 보세요: 온라인 Lua 컴파일러