728x90
문제설명

평가를 문자(A, B, C, D, ...)로 입력받아 내용을 다르게 출력해보자.

평가 내용
평가 : 내용
A : best!!!
B : good!!
C : run!
D : slowly~
나머지 문자들 : what?


참고
조건/선택문을 복합적으로 구성해 출력할 수도 있지만,

switch(정수값)
{
  case 'A': //문자 'A'가 정수값 65('A'의 아스키 값)로 저장되기 때문에 가능하다.
    ...;
    break;
  case 'B':
    ...;
    break;
  case 'C':
    ...;
    break;
  default:
    ...;
}

위와 같은 switch( ) ... case... break; 제어문을 사용할 수 있다.

** break; 를 사용하지 않으면 이후의 명령들도 계속 실행된다.
default: 는 제시된 case 를 제외한 나머지 모든 경우에 실행된다.
switch( ) 에 주어지는 값은 “정수"값만 가능하며,
문자도 아스키코드 정수값이기 때문에 가능하다.

 

 

입력

영문자 1개가 입력된다.
(A, B, C, D 등의 한 문자가 입력된다.)

 

 

출력

평가내용에 따라 다른 내용이 출력된다.

 

 

입력예시

A

 

 

출력예시

best!!!

 


#include <stdio.h>
int main(void){
    char n;
    scanf("%c", &n);
    switch(n){
        case 'A':
        printf("best!!!");
        break;
        case 'B':
        printf("good!!");
        break;
        case 'C':
        printf("run!");
        break;
        case 'D':
        printf("slowly");
        break;
        default:
        printf("what?");
    }
}

이 문제는 크게 어려움이 있지는 않지만 평소에 잘 쓰지 않는 부분이 있어 기록하려고 작성해본다. 여기서 처음에 switch 안에서 정수형을 넣어야 된다고 해서 처음에는 int 형과 %d를 활용했다. 하지만 이것은 아니였다 switch 하는 과정에서 알아서 아스키 코드로 변환하여 하기에 문자열로 입력을 받고 저장해야 하는 것이 맞다. 그리고 case 부분에 줄 들여쓰기가 안되길래 잘못한줄 알았는데 아니였다. case로 알아서 찾아 들어가기 때문에 걱정안하고 해도 된다. 각각 출력해야할 것을 넣어주고 break;로 마무리해주면 된다. else처럼의 역할은 default이다. 다른 것을 입력안하고 default: 이 형태로만 해줘도 된다.

728x90

+ Recent posts