If와 Switch 비교
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는 여러 case를 함께 그룹화(폴스루)하여 동일한 결과를 공유하도록 할 수 있습니다. 코드 없이 case 레이블을 하나씩 연속해서 배치하고, 마지막에 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;
}여기서는 both "B"와 "b"가 동일한 블록으로 넘어가 "Good - 3 points"를 출력합니다. 이 패턴은 대문자와 소문자 입력 또는 어떤 값들의 집합이든 동일한 result를 생성하도록 하려는 경우에 유용합니다.
switch는 결과를 공유하는 서로 다른 레이블의 case를 그룹화할 수도 있습니다:
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;
}챌린지
중급convertGradeToPoints라는 이름의 method를 생성하여 다음을 수행하세요:
- 문자열 매개변수로 학점 문자를 받습니다
- switch와 if-else 접근 방식을 모두 사용하여 이를 숫자 학점으로 변환합니다
- method는 두 접근 방식을 모두 implement하고 switch 구현의 result를 반환해야 합니다
- 다음 학점 변환을 사용하세요:
- "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)
{
// 여기에 코드를 작성하세요
}
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리 및 흐름의 모든 레슨
직접 연습해 보세요: 온라인 C# 컴파일러