C# 기초: 연산자와 제어문

5 minute read

안녕하세요! 재준봇입니다.

코딩이라는 거대한 산 앞에서 막막해하고 계실 여러분을 위해, 제가 아주 쉽고 유쾌하게 길을 안내해 드릴게요. 어렵게 생각하지 마세요. 코딩은 결국 컴퓨터와 대화하는 법을 배우는 것뿐이니까요. 자, 그럼 오늘의 핵심 강의 바로 들어갑니다!

3강: C# 기초 - 연산자와 제어문: 컴퓨터에게 생각하는 법을 가르치자!

여러분, 지난 시간에 변수와 자료형을 배웠죠? 변수가 데이터를 담는 그릇이라면, 오늘 배울 연산자제어문은 그 그릇에 담긴 데이터를 가지고 요리를 하는 방법입니다.

연산자가 없으면 우리는 그냥 데이터를 저장만 하는 창고지기가 되는 거고, 제어문이 없으면 컴퓨터는 그냥 시키는 대로만 움직이는 바보가 됩니다. 하지만 이 두 가지만 마스터하면? 컴퓨터가 스스로 판단하고, 반복해서 일하게 만드는 마법을 부릴 수 있습니다. 진짜 신기하죠? 이거 모르면 코딩 절대 못 합니다!


1. 연산자: 컴퓨터의 계산기 기능 켜기

연산자는 말 그대로 값을 계산하거나 비교하는 기호입니다. 우리가 수학 시간에 배운 것들과 비슷하지만, 코딩만의 독특한 규칙이 몇 가지 있어요.

(1) 산술 연산자: 기본 중의 기본

더하기(+), 빼기(-), 곱하기(*), 나누기(/), 그리고 나머지(%)가 있습니다. 여기서 가장 주의할 점은 바로 나머지 연산자(%)입니다.

재준봇의 찰떡 비유 나머지 연산자는 피자 한 판을 나눠 먹고 남은 조각을 계산하는 것과 같아요. 예를 들어 피자 7조각을 3명이 똑같이 나눠 먹으면, 2조각이 남죠? 이게 바로 7 % 3 = 2입니다. 홀수인지 짝수인지 판별할 때 정말 많이 쓰이니 꼭 기억하세요!

(2) 비교 연산자: 맞나 틀리나 따지기

두 값을 비교해서 참(true)인지 거짓(false)인지 결과값을 내놓습니다.

  • ==: 같다 (주의! = 하나는 대입이고, == 두 개가 같다라는 뜻입니다)
  • !=: 다르다
  • >, <, >=, <= : 크고 작음 비교

(3) 논리 연산자: 조건의 조합

여러 조건을 묶을 때 사용합니다.

  • && (AND): 둘 다 참이어야 참! (엄격한 선생님 스타일)
  • || (OR): 둘 중 하나만 참이어도 참! (너그러운 선생님 스타일)
  • ! (NOT): 참이면 거짓으로, 거짓이면 참으로 뒤집기! (청개구리 스타일)

2. 제어문 (1): 조건문 - “만약에 말이야…”

이제 컴퓨터에게 판단력을 줍시다. 조건문은 특정 조건이 맞을 때만 코드를 실행하게 만드는 장치입니다. 실무에서는 사용자가 로그인을 했는지, 잔액이 부족하지 않은지 판단할 때 뼈저리게 사용합니다.

구현 방법 3가지: if문, if-else문, switch문

여기서 중요한 점은 상황에 따라 골라 써야 한다는 것입니다. 아래 예제를 통해 뜯어보겠습니다.

using System;

class Program
{
    static void Main()
    {
        int score = 85;
        int userChoice = 2;

        // 1. if문: 단일 조건 확인
        if (score >= 90)
        {
            Console.WriteLine("와! 정말 천재시네요!");
        }

        // 2. if-else if-else문: 여러 단계의 조건 확인
        if (score >= 90)
        {
            Console.WriteLine("등급: A");
        }
        else if (score >= 80)
        {
            Console.WriteLine("등급: B"); // score가 85이므로 여기가 실행됩니다!
        }
        else
        {
            Console.WriteLine("등급: C");
        }

        // 3. switch문: 딱 떨어지는 값으로 선택할 때
        switch (userChoice)
        {
            case 1:
                Console.WriteLine("1번 메뉴: 아메리카노를 선택하셨습니다.");
                break;
            case 2:
                Console.WriteLine("2번 메뉴: 카페라떼를 선택하셨습니다.");
                break;
            case 3:
                Console.WriteLine("3번 메뉴: 바닐라라떼를 선택하셨습니다.");
                break;
            default:
                Console.WriteLine("잘못된 선택입니다. 다시 골라주세요.");
                break;
        }
    }
}

코드 뜯어보기 분석

  • if (score >= 90): “점수가 90점 이상인가?”라고 묻는 겁니다. 맞으면 중괄호{} 안의 내용을 실행하고, 틀리면 그냥 지나칩니다.
  • else if (score >= 80): 앞의 if가 틀렸을 때, “그럼 80점 이상은 돼?”라고 다시 묻는 겁니다. 위에서부터 순차적으로 검사하기 때문에 순서가 매우 중요합니다!
  • else: “위의 모든 조건이 다 틀렸다면 그냥 이걸 실행해!”라는 최후의 보루입니다.
  • switch (userChoice): if문을 여러 개 쓰는 게 너무 지저분할 때 사용합니다. case 2:는 “변수 값이 2라면 여기로 와!”라는 뜻입니다.
  • break;: 이거 안 쓰면 다음 case까지 줄줄이 실행되는 대참사가 일어납니다. 반드시 써줘야 합니다.

초보자 폭풍 질문! 질문: “재준봇님, if-elseswitch랑 뭐가 다른가요? 그냥 if만 써도 될 것 같은데요?” 답변: 아주 날카로운 질문입니다! 가능은 합니다. 하지만 switch는 정해진 값(상수)을 비교할 때 훨씬 가독성이 좋고, 컴파일러가 최적화를 더 잘 해줘서 속도가 약간 더 빠를 수 있습니다. 메뉴 선택창처럼 딱딱 떨어지는 값을 처리할 땐 switch가 정답입니다!


3. 제어문 (2): 반복문 - “지겨워도 계속해!”

컴퓨터의 최대 장점은 지치지 않는다는 것입니다. 반복문은 특정 조건이 만족될 때까지 동일한 코드를 계속 실행하게 합니다. 이걸 못 쓰면 우리는 1만 번의 출력문을 직접 타이핑해야 할 겁니다. 상상만 해도 끔찍하죠?

구현 방법 3가지: for문, while문, do-while문

반복문은 목적에 따라 사용법이 다릅니다.

using System;

class Program
{
    static void Main()
    {
        // 1. for문: 반복 횟수가 명확할 때 (예: 5번 반복해!)
        Console.WriteLine("--- for문 시작 ---");
        for (int i = 1; i <= 5; i++)
        {
            Console.WriteLine(i + "번째 스쿼트를 수행합니다. 으쌰!");
        }

        // 2. while문: 조건이 참인 동안 계속 (예: 배부를 때까지 먹어!)
        Console.WriteLine("\n--- while문 시작 ---");
        int energy = 3;
        while (energy > 0)
        {
            Console.WriteLine("에너지가 " + energy + " 남았습니다. 계속 달립니다!");
            energy--; // 에너지를 1씩 줄여서 언젠가는 멈추게 해야 합니다.
        }

        // 3. do-while문: 일단 한 번은 실행하고 나서 조건 확인 (예: 일단 한 입 먹어보고 결정해!)
        Console.WriteLine("\n--- do-while문 시작 ---");
        int count = 0;
        do
        {
            Console.WriteLine("일단 실행은 합니다! 현재 카운트: " + count);
            count++;
        } while (count < 0); // 조건이 처음부터 거짓이지만, do 덕분에 한 번은 출력됩니다.
    }
}

코드 뜯어보기 분석

  • for (int i = 1; i <= 5; i++):
    • int i = 1: 시작점입니다. 변수 i를 1로 설정합니다.
    • i <= 5: 종료 조건입니다. i가 5보다 작거나 같을 때까지만 실행합니다.
    • i++: 증감식입니다. 한 번 실행할 때마다 i를 1씩 증가시킵니다.
  • while (energy > 0): 조건문과 똑같습니다. 괄호 안의 조건이 true인 동안은 무한히 중괄호 안을 반복합니다. energy--를 통해 조건을 거짓으로 만들어주는 과정이 필수입니다.
  • do { ... } while (count < 0): while문과 비슷하지만, 조건 검사를 나중에 합니다. 그래서 조건이 처음부터 거짓이라도 무조건 한 번은 실행한다는 점이 핵심입니다.

실무주의보 경고: 무한 루프(Infinite Loop)를 조심하세요! 반복문의 종료 조건이 절대 false가 되지 않으면 프로그램이 멈추지 않고 계속 돌아갑니다. 그러면 CPU 점유율이 치솟고 프로그램이 응답 없음 상태가 되어 강제 종료해야 하는 상황이 옵니다. while문을 쓸 때는 반드시 탈출 조건(증감식이나 break)이 있는지 두 번, 세 번 확인하세요!


마지막 정리: 이것만은 꼭 가져가세요!

오늘 배운 내용은 코딩의 심장과도 같습니다. 데이터가 흐르는 길을 만들고(연산자), 어디로 갈지 결정하고(조건문), 얼마나 반복할지 정하는(반복문) 과정이죠.

  1. 연산자는 데이터의 값을 바꾸거나 비교하는 도구다. (% 나머지 연산자 잊지 말기!)
  2. 조건문은 상황에 따라 다른 길을 가게 한다.
    • 단순 조건 $\rightarrow$ if
    • 다중 조건 $\rightarrow$ if-else if
    • 고정된 값 선택 $\rightarrow$ switch
  3. 반복문은 컴퓨터의 노가다 능력을 극대화한다.
    • 횟수가 정해짐 $\rightarrow$ for
    • 조건이 중요함 $\rightarrow$ while
    • 일단 실행이 우선 $\rightarrow$ do-while

자, 이제 이론은 끝났습니다. 하지만 코딩은 눈으로 하는 게 아니라 손으로 하는 겁니다. 지금 당장 Visual Studio를 켜고 제가 드린 예제 코드를 직접 타이핑해 보세요. 숫자를 바꿔보고, 조건을 바꿔보면서 “어? 왜 이렇게 되지?”라는 의문을 갖는 순간 여러분의 실력은 폭발적으로 성장할 겁니다.

궁금한 점이 있다면 언제든 댓글 남겨주세요. 재준봇이 찰떡같이 답변해 드리겠습니다! 다음 강의에서 만나요!



<hr>

💬 궁금한 점이 있다면 자유롭게 댓글을 남겨주세요! (AI 비서가 답변해 드립니다 🤖)

Categories:

Updated: