반응형

printf("Welcome, Let's C Language.");  // 초등학생도 쉽게 이해시켜주는 C언어 글을 포스팅합니다.

 

안녕하세요. 비전공자 출신 SW Test 엔지니어 Crush on Study입니다. 

이번 글에서는 조건에 따라 다른 화면을 출력시킬 수 있도록 해주는 '조건문'에 대해 배워보겠습니다.

 

Q. 먼저 이전 시간에 배운 내용을 잠깐 복습해봅시다.

A. 1) while문에 대해 배웠습니다.

- while문은 for문과 마찬가지로 반복문 유형 중 하나입니다. 다만, for문의 구조는 옆에 초기값 선언, 조건식, 증감식을 한번에 적어줬다면 while문은 위에 초기값 선언, while 옆에 조건식 선언, while 몸통에 증감식 선언. 이런 식으로 나눠서 구조를 짜야했었습니다. 

2) do while문에 대해 배웠습니다.

- do while문은 while문과 차이점이 있습니다.

while do while
조건을 먼저 확인하고 수행을 결정한다.
조건이 충족되지 않는다면 프로그램 종료.
먼저 임시로 수행을 1번 한 뒤에, 조건을 확인한다.
만약 조건이 일치하지 않으면 1번 출력으로 끝.

 

딱 보고 기억 나는게 없다. 하면 바로 이 전글을 참고하세요.

https://crush-on-study.tistory.com/212

 

[C언어] #5. while 반복문과 do ~ while 반복문

printf("Welcome, Let's C Language."); // 초등학생도 쉽게 이해시켜주는 C언어 글을 포스팅합니다. 안녕하세요. 비전공자 출신 SW Test 엔지니어 Crush on Study입니다. 이번 글에서는 조건에 따라 다른 화면을..

crush-on-study.tistory.com

switch 구문 강의 소스코드

// #6. switch 구문 강의

#include <stdio.h>

int main()
{
    int choice;

    printf("Welcome to choice game.\n");
    printf("Let's choice the number : ");
    scanf_s("%d",&choice);

    switch (choice)
    {
   		 case 1:
    	{
        printf("you choice no.1\n");
        break;
   		 }
    
    	case 2:
   		 {
        printf("you choice no.2\n");
        break;
   		 }
    
   		 default:
         {
        printf("you choice another.\n");
        break;
        }
    }

    return 0;
}

오늘할 것은 switch구문입니다. 제가 이거 배울 때 딱, 생각난게  "아, 이거 가지고 밸런스 게임 만들어야겠다 ㅋㅋㅋㅋㅋ" 였습니다. ㅋ  일단 구조들을 먼저 살펴봅시다. 처음보는게 있네요. default입니다.

1. Switch 구문
Switch는 if문과 비슷해보이지만, 트리거를 통해 수행된다는 점에서 차이가 있습니다. Switch의 구조는 위에서 변수 초기화와 printf, scanf를 통해 입력을 받을 준비를 먼저 해놓는걸 시작으로 합니다.

그 아래에 Switch를 적는데요. 옆에다 우리가 scanf로 받은 choice를 트리거로 해둡니다. 
만약 1을 입력했으면 "You choice no.1" 이라는 구문이 나오겠죠? 코드보시면 눈치를 채셨겠지만 1,2를 제외한 다른 값을 입력했을 때는 default 구문이 실행됩니다.

다른거 하나 만들어서 해본 결과입니다. 2를 누르면 case 2만 실행이 됩니다. 근데 왜 구문마다 break를 해야할까요?

만약 break를 적지않는다면 아래와 같은 결과가 나옵니다.

저는 수달이 좋다고 3번을 찍었는데 break가 없어서 3번 아래 구문도 함께 실행이 되어버렸습니다. 따라서 Switch구문을 사용할 때는 각 case마다 break를 적어주는게 중요한 포인트라 할 수 있습니다.

반응형

+ Recent posts