Menu
Coddy logo textTech

If vs. Switch Comparison

Coddy C# 여정의 논리 및 흐름 섹션에 포함된 레슨 — 66개 중 10번째.

C#은 여러 조건을 처리하는 두 가지 주요 방법을 제공합니다: if-else 문과 switch 문입니다. 각각은 서로 다른 시나리오에서 장점을 가지고 있습니다.

If-else 문은 유연하며 모든 유형의 조건을 처리할 수 있습니다:

string grade = "B";

if (grade == "A")
{
    Console.WriteLine("Excellent");
}
else if (grade == "B")
{
    Console.WriteLine("Good");
}
else if (grade == "C")
{
    Console.WriteLine("Satisfactory");
}
else
{
    Console.WriteLine("Needs improvement");
}

Switch 문은 단일 변수를 여러 상수 값과 비교할 때 더 깔끔합니다:

string grade = "B";

switch (grade)
{
    case "A":
        Console.WriteLine("Excellent");
        break;
    case "B":
        Console.WriteLine("Good");
        break;
    case "C":
        Console.WriteLine("Satisfactory");
        break;
    default:
        Console.WriteLine("Needs improvement");
        break;
}

Switch는 여러 케이스를 하나로 묶어(fall-through) 동일한 결과를 공유하도록 할 수 있습니다. 케이스 레이블 사이에 코드를 넣지 않고 차례대로 쌓은 뒤, 마지막에 break를 하나만 작성하면 됩니다:

string grade = "B";

switch (grade)
{
    case "A":
    case "a":
        Console.WriteLine("Excellent - 4 points");
        break;
    case "B":
    case "b":
        Console.WriteLine("Good - 3 points");
        break;
    case "C":
    case "c":
        Console.WriteLine("Satisfactory - 2 points");
        break;
    default:
        Console.WriteLine("Needs improvement");
        break;
}

여기서 "B""b"는 모두 동일한 블록으로 폴스루(fall through)되어 "Good - 3 points"를 출력합니다. 이 패턴은 대문자와 소문자 입력 또는 임의의 값 세트가 동일한 결과를 생성하도록 하려는 경우 유용합니다.

Switch는 동일한 결과를 공유하는 서로 다른 레이블의 케이스들을 그룹화할 수도 있습니다:

char dayCode = 'M';

switch (dayCode)
{
    case 'M':
        Console.WriteLine("Monday");
        break;
    case 'T':
        Console.WriteLine("Tuesday or Thursday");
        break;
    case 'W':
        Console.WriteLine("Wednesday");
        break;
    case 'F':
        Console.WriteLine("Friday");
        break;
    default:
        Console.WriteLine("Unknown day");
        break;
}
challenge icon

챌린지

중급

다음과 같은 convertGradeToPoints 메서드를 생성하세요:

  1. 문자열 매개변수로 학점(letter grade)을 받습니다.
  2. switch 문과 if-else 문 방식을 모두 사용하여 이를 숫자 평점으로 변환합니다.
  3. 메서드는 두 가지 방식을 모두 구현해야 하며, switch 구현의 결과를 반환해야 합니다.
  4. 다음 학점 변환 기준을 사용하세요:
    • "A" 또는 "a" = 4
    • "B" 또는 "b" = 3
    • "C" 또는 "c" = 2
    • "D" 또는 "d" = 1
    • "F" 또는 "f" = 0
    • 그 외의 모든 입력 = -1

직접 해보기

public class ConvertGradeToPoints
{
    // convertGradeToPoints 메서드를 구현하세요
    public static int convertGradeToPoints(string letterGrade)
    {
        // 여기에 코드를 작성하세요
        
    }
}
quiz icon실력 점검

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

논리 및 흐름의 모든 레슨