Programming/C# * Unity

[C#] switch~case문 응용

고막고막 2019. 3. 4. 11:38

switch ~ case문은 if ~ else문과 유사한 역할을 하지만 그 활용 범위가 좁다. 가령 특정한 값만 제어할 수 있어 범위는 제어할 수 없다. 그러나 전혀 방법이 없는 것은 아니다. switch ~ case문을 응용해 범위를 제어해보자.

문제

사용자에게 점수를 입력받아
 90점 이상이면 "A학점"
 80점 이상이면 "B학점"
 70점 이상이면 "C학점"
 60점 이상이면 "D학점"
 60점 미만이면 "F학점"
을 출력해보자.

해결

[점수와 결과 변수 선언 →  입력 받기 → switch ~ case문을 응용해 구간별로 다른 학점을 결과에 저장 → 결과 출력]
정수간 연산에는 소수점이 찍히지 않음으로 입력받은 점수를 10으로 나눈 결과인 '몫'을 구간 대신 case문에 적용할 수 있다. 단, case에 들어가는 값은 콤마로 나열할 수 없기 때문에 case를 나열해준다.
switch(num/10)  
// 정수와 정수 연산은 소수점이 없음,
// 나누기에서는 몫만 남음
{
    case 10:
    case 9:
        result = "A";
        break;
    case 8:
        result = "B";
        break;
    case 7:
        result = "C";
        break;
    case 6 :
        result = "D";
        break;
    case 5 :
    case 4 :
    case 3 :
    case 2 :
    case 1 :
    case 0 :
        result = "F";
        break;
}
Console.WriteLine(result);
cs