IMCAT.DEV
로그인 가입
Lua 입문 문법

Lua 비교 연산자와 논리 연산자

Lua 비교 연산자와 논리 연산자 — 초급

비교 연산자와 논리 연산자

1. 도입 (왜 배워야 하는가)

비교 연산자와 논리 연산자는 프로그래밍에서 매우 중요한 역할을 합니다. 이 두 가지 연산자는 프로그래머가 조건을 평가하고, 그에 따라 프로그램의 흐름을 제어할 수 있게 해줍니다. 예를 들어, 사용자가 특정 조건을 만족할 때만 기능을 실행하도록 만들거나, 여러 조건을 조합하여 복잡한 로직을 구현할 수 있습니다.

이 토픽을 모르면 논리적 판단을 기반으로 한 코드 작성이 어렵고, 프로그램의 흐름을 제어할 수 없게 됩니다. 결국 코드의 복잡성이 증가하여 유지보수와 디버깅이 힘들어질 수 있습니다.


2. 핵심 개념 설명

비교 연산자는 두 값을 비교하여 결과를 Boolean 값(true 또는 false)으로 반환합니다. 논리 연산자는 여러 Boolean 값을 조합하여 새로운 Boolean 값을 생성합니다.

비교 연산자

연산자설명예시
두 값이 같은지 비교5 5 -> true
~=두 값이 다른지 비교5 ~= 3 -> true
<좌측 값이 우측 값보다 작은지 비교3 < 5 -> true
>좌측 값이 우측 값보다 큰지 비교7 > 4 -> true
<=좌측 값이 우측 값보다 작거나 같은지 비교5 <= 5 -> true
>=좌측 값이 우측 값보다 크거나 같은지 비교6 >= 3 -> true

논리 연산자

연산자설명예시
and두 조건이 모두 true일 때 true 반환true and false -> false
or하나 이상의 조건이 true일 때 true 반환true or false -> true
not조건의 반대값 반환not true -> false

비유하자면, 비교 연산자는 "두 사람의 나이가 같은가?"와 같은 질문을 할 때 사용하고, 논리 연산자는 "어떤 조건이 모두 만족한다면"과 같은 조건을 설정할 때 사용합니다.


3. 기본 코드 예제

아래는 Lua에서 비교 연산자와 논리 연산자를 사용하는 간단한 코드 예제입니다.

local age = 20
local has_ticket = true

if age >= 18 and has_ticket then
    print("영화에 입장할 수 있습니다.")  -- 18세 이상이고, 티켓이 있는 경우
else
    print("영화에 입장할 수 없습니다.")  -- 조건이 만족하지 않는 경우
end

실행 결과

영화에 입장할 수 있습니다.

코드 한 줄씩 동작 설명

  1. local age = 20: 변수 age에 20을 할당합니다.
  2. local has_ticket = true: 변수 has_ticket에 true를 할당합니다.
  3. if age >= 18 and has_ticket then: age가 18 이상이고 has_ticket이 true인지 검사합니다.
  4. print("영화에 입장할 수 있습니다."): 조건이 true이므로 이 메시지를 출력합니다.
  5. else: 조건이 false인 경우 실행될 블록을 설정합니다.
  6. print("영화에 입장할 수 없습니다."): 이 메시지는 실행되지 않습니다.

  7. 4. 실전 활용 예제

    1. 쇼핑몰에서 장바구니를 구현할 때

    local cart = {item1 = 2, item2 = 1}  -- 장바구니에 item1이 2개, item2가 1개
    local total_items = 0
    
    for _, count in pairs(cart) do
        total_items = total_items + count
    end
    
    if total_items > 0 then
        print("장바구니에 상품이 있습니다.")  -- 상품이 있는 경우
    else
        print("장바구니가 비어 있습니다.")    -- 장바구니가 비어 있는 경우
    end

    2. 사용자 로그인 검증

    local username = "user123"
    local password = "pass456"
    
    if username  "user123" and password  "pass456" then
        print("로그인 성공!")  -- 로그인 정보가 일치하는 경우
    else
        print("로그인 실패!")  -- 로그인 정보가 불일치하는 경우
    end

    5. 흔한 실수와 주의사항

    실수 1: 비교 연산자 사용 실수

    if age = 18 then  -- 잘못된 코드
        print("18세입니다.")
    end
    • 올바른 코드: if age 18 then (대입 연산자 = 대신 비교 연산자 사용)
    • 실수 2: 논리 연산자 사용 시 괄호 누락

      if age >= 18 and has_ticket == true then  -- 괄호 없어도 되지만 가독성을 위해 추가하는 것이 좋음
          print("영화에 입장할 수 있습니다.")
      end
    • 올바른 코드: if (age >= 18) and (has_ticket == true) then (가독성을 높이기 위해 괄호 추가)

    • 6. 정리

    • 비교 연산자는 두 값을 비교하여 true 또는 false를 반환합니다.
    • 논리 연산자는 여러 조건을 조합하여 새로운 Boolean 값을 생성합니다.
    • 조건문을 활용하여 프로그램의 흐름을 제어할 수 있습니다.
    • 잘못된 연산자를 사용하면 에러가 발생하므로 주의해야 합니다.
    • 다음에 학습하면 좋은 주제

    • 조건문과 반복문
    • 함수 정의와 활용
    • 테이블과 자료구조

이 내용을 통해 Lua의 비교 연산자와 논리 연산자에 대한 이해를 높이고, 실무에서 활용할 수 있는 기초를 다지길 바랍니다!