일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 클래스 다이어그램
- 네트워크 프로그래밍
- 동영상
- C++
- 파이썬
- 언제나휴일
- 추천
- c언어
- 안드로이드 앱 개발
- 알고리즘
- 소켓 통신
- 표준 라이브러리 함수
- 강의
- 졸업 작품 소재
- 산책하기 좋은 곳
- 충남 천안
- 프로젝트
- 실습
- 소스 코드
- 표준 입출력
- Windows Forms
- 캡슐화
- 언제나 휴일
- 원격 제어 프로그램
- 실습으로 다지는 c#
- 동영상 강의
- 유튜브 동영상 강의
- c#
- 무료 동영상 강의
- 졸업 작품
- Today
- Total
프로그래밍 언어 및 기술 [언제나휴일]
값에 따라 수행할 구문을 선택하는 switch case 문 본문
안녕하세요. 언제나 휴일의 언휴예요.
선택문
C언어에서는 특정 표현의 값에 따라 구문을 선택하여 수행하는 switch 선택문을 제공하고 있어요.
switch(표현)
{
case 상수: [수행 구문] [break]
case 상수: [수행 구문] [break]
…
[default:] [수행구문] [break]
}
switch 선택문에서 중괄호는 반드시 달아야 합니다. 물론 개발할 때 중괄호를 달지 않으면 문법 오류가 발생하기 때문에 개발할 때 실수할 확률은 지극히 낮겠죠.
여러 조건에 따라 수행할 구문을 표현할 때 if 조건문을 사용하면 복잡할 때가 있습니다. 이 때 switch 선택문으로 해결할 수 있는지 고민해 보세요.
학점 부여하기로 조건문과 선택문 비교
예를 들어 점수를 입력받아 학점을 A, B, C, D, F를 부여하는 작업은 if 조건문으로 작성하면 다소 복잡할 수 있어요.
다음 코드는 if 조건문으로 구현한 예제 코드입니다.
점수를 10으로 나눈 몫에 따라 학점을 부여하고 있어요.
#include <stdio.h>
int main()
{
int score = 0;
printf("점수(0~100):");
scanf_s("%d", &score);
if ((score < 0) || (score > 100))
{
printf("범위를 벗어났습니다.\n");
return;
}
printf("입력한 점수는 %d이고 학점은 ", score);
int level = score / 10;
if (level == 10 || level == 9)
{
printf("A");
}
else if (level == 8)
{
printf("B");
}
else if (level == 7)
{
printf("C");
}
else if (level == 6)
{
printf("D");
}
else
{
printf("F");
}
printf("입니다.\n");
return 0;
}
이를 switch 선택문으로 작성하면 다음처럼 작성할 수 있어요.
#include <stdio.h>
int main()
{
int score = 0;
printf("점수(0~100):");
scanf_s("%d", &score);
if ((score < 0) || (score > 100))
{
printf("범위를 벗어났습니다.\n");
return;
}
printf("입력한 점수는 %d이고 학점은 ", score);
int level = score /10;
switch (level)
{
case 10:
case 9: printf("A"); break;
case 8: printf("B"); break;
case 7: printf("C"); break;
case 6: printf("D"); break;
default: printf("F"); break;
}
printf("입니다.\n");
return 0;
}
switch 선택문에서 case 뒤에는 상수 표현이 오며 콜론(:)으로 레이블을 지정합니다.
switch 뒤에 표현 값에 따라 특정 레이블부터 코드를 수행하며 break 문을 만나기 전까지 수행합니다.
위 코드에서 level이 10과 9일 때 학점 A를 부여하기 위해 case 10: 뒤에 아무 코드를 작성하지 않고 case 9: 뒤에 A를 출력하는 구문을 표현하였습니다.
그리고 case 상수 표현에 해당하지 않는 나머지 모든 상황에서 수행할 구문은 defaut: 레이블을 사용하여 표현합니다.
주의할 점은 break를 만나기 전까지 수행한다는 점이예요.
기본 연습
하나의 문자를 입력받아 ‘i’ 혹은 ‘I’일 때는 추가, ‘d’ 혹은 ‘D’일 때는 삭제 , ‘s’ 혹은 ‘S’일 때는 검색, ‘l’, ‘L’일 때는 전체 출력이라고 화면에 출력하는 프로그램을 작성하시오.
언제나휴일 추천 여행 및 산책
'C & C++ > 언제나 C언어' 카테고리의 다른 글
함수 만들기 실습 기초 – 합계 구하기, 소수 판별, 소문자 판별, 대문자 판별, 소문자 변환, 대문자 변환 (0) | 2025.01.03 |
---|---|
자주 사용하는 알고리즘은 함수로 만들어요. 함수 선언, 함수 정의, 함수 호출 (0) | 2025.01.03 |
제어문은 문법이 어려운 것이 아니라 구현이 어려워요. 다양한 제어문 문제 모음 (0) | 2025.01.03 |
반복적인 작업은 while 혹은 for 문을 사용하세요. (0) | 2025.01.03 |
조건문 문제 솔루션 (0) | 2025.01.03 |
조건문에서 if는 참일 때 수행 하고 else는 거짓일 때 수행 (0) | 2025.01.03 |
대입 연산의 왼쪽(좌항)에 오는 표현을 l-value라고 불러요. (0) | 2025.01.03 |
비트 자리 이동 연산, 쉬프트 연산 (0) | 2025.01.03 |