C#

C# 기초 - 본격 프로그래밍 시작해보기

옹즤 2025. 4. 1. 16:27
  • 문제 1. 입력받은 데이터가 숫자인지 문자열인지 판단

캐스팅의 TryParse 를 응용하여 만들 수 있습니다.
입력받은 데이터가 숫자 - “숫자입니다.”
아니라면 - “문자열입니다.”

  • 문제 2. 입력받은 데이터가 숫자인지 문자열인지 불리언인지 판단

입력받은 데이터에 맞게 출력하는 프로그램 만들기
숫자면 “숫자입니다.  
true, false 면 “불리언 입니다.”
아니라면 “문자열입니다.” 

  • 문제 3. 입력받은 데이터가 숫자라면 100 보다 큰지 작은지 알려주는 프로그램 만들기

입력받은 데이터가 문자라면 - “숫자가 아닙니다.”
입력받은 데이터가 숫자라면
수가 100 이상이라면 크다면 “xx 은(는) 100 보다 같거나 큰 수 입니다.”
수가 100 보다 작다면 “xx 은(는) 100 보다 작은 수 입니다.”

  • 문제 4. 입력받은 데이터가 숫자라면 짝수인지 홀수인지 알려주는 프로그램 만들기

입력받은 데이터가 문자라면 - “숫자가 아닙니다.”
입력받은 데이터가 숫자라면
수가 짝수라면 - “xx 은(는) 짝수 입니다.”
수가 홀수라면 - “xx 은(는) 홀수 입니다.”

 

코드 작성

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
string input = Console.ReadLine();
 
int num;
bool isInt = int.TryParse(input, out num);
 
bool a;
bool isBool = bool.TryParse(input, out a);
 
int rem = num % 2;
 
// 짝수, 홀수 판단
switch(rem)
{
    case 0:
        Console.WriteLine(input + "은 짝수입니다.");
        break;
 
    case 1:
        Console.WriteLine(input + "은 홀수입니다.");
        break;
 
 
}
// 숫자, 문자, 불리언 판단
if (isInt)
{
    Console.WriteLine("숫자입니다.");
    if (num >= 100)
    {
        Console.WriteLine(input + "은(는) 100보다 같거나 큰 수 입니다.");
    }
    else
    {
        Console.WriteLine(input + "은(는) 100보다 작은 수 입니다.");
    }
}
else if (isBool)
{
    Console.WriteLine("불리언입니다.");
}
else
{
    Console.WriteLine("숫자가 아닙니다.");
}
cs

전체 4개의 질문을 모두 합쳐서 작성을 했는데 정답지에는 나눠져있었다.

1번부터 막막해서 1번 정답지를 보았는데, 1번을 작성한 이후로는 막히지 않았다.

어쨌거나 질문에 모두 충족하는 결과값이 나와서 큰 수정은 하지 않았으나

4번 문제의 코드 진행이 달랐다.

5번 문제가 if와 case를 언제 사용하느냐라는 질문이어서 일부러 4번 문제를 case를 사용하여 표현했는데

정답지에는 if를 사용하여 코드가 작성되어 있었다.

일단 결과적으로 if를 사용하나 case를 사용하나 코드에는 문제가 없었던 것을 보니

이전에 공부했던 Convert와 TryParse의 차이처럼 용도가 다른가 싶었다.

 

  • 문제 5.  언제 if 를 쓰고 언제 case 를 쓸까요?

if vs switch-case 비교

비교 항목 if 문 switch-case 문
사용 방식 다양한 조건문 (<, >, ==, &&, `  
조건 조합 가능 여부 ✅ (if (x > 10 && y < 5)) ❌ (switch는 범위 비교 불가능)
가독성 조건이 많아지면 복잡해질 수 있음 특정 값 비교 시 더 간결하고 가독성 좋음
성능 조건이 많아질수록 성능이 떨어질 수 있음 컴파일러가 최적화하여 속도가 더 빠를 수 있음
사용 가능한 데이터 타입 int, float, bool, string 등 다양한 타입 가능 int, char, string, enum (범위 비교 불가)
실행 방식 위에서 아래로 하나씩 검사 특정 값이 일치하면 실행 후 break로 빠져나감

어떤 경우에 사용해야 할까?

사용 상황 if 추천 switch-case 추천
범위 비교 (x > 10)
**조건이 많고 복잡한 논리 연산 (&&, `   `)**
특정 값 비교 (x == 1, x == 2, x == 3 등)
enum 또는 KeyCode 같은 상수 값 비교
단순한 조건문 (예: 버튼 클릭 여부)