남들이 안해본것을 해서 궁극적인 지식의 완성을 목표로 하는 블로그입니다.
제품리뷰 , IT, 프로그래밍 관련글을 포스팅합니다.
또한 자기만 읽으려고 만든 정리 노트식의 글들을 싫어합니다. 비전공자나 처음 본 사람도 최대한 이해할 수 있도록 프로그래밍 관련 글들을 쉽게 적으려고 노력하고 있습니다. 보안 계통과 컴퓨터의 Low-Level 한 분야에 관심이 많습니다.
요렇게 if문 바로 아래에 else 문을 추가해주면 if문의 조건이 충족되지 않을 때 else 문이 실행되게 됩니다.
짝수가 아니면 홀수니 이렇게 나눌 수 있는 것이죠.
A+ 90점 이상 A 85점 이상 B+ 80점 이상 B 75점 이상 그 외 : F
그러면 조건문을 이용하여 점수를 입력하면 다음과 같은 기준으로 등급을 구분해봅시다.
#include <stdio.h>
int main(){
int n;
scanf("%d", &n);
if (n >= 90) printf("A+");
else
if (n >= 85) printf("A");
else
if (n >= 80) printf("B+");
else
if (n >= 80) printf("B");
else printf("F");
return 0;
}
조건에 맞게 코딩을 했습니다. 실행 식이 하나이니 if (n >= 90) printf("A+"); 로 생략했고
else를 사용할 때도 실행 식이 if (n >= 85) printf("A"); 하나라 중괄호를 생략했습니다.
값도 잘 나오고 하는데.. if문과 else 문이 너무 중첩돼서 지저분해 보입니다.
어떻게 할까요?
이럴 땐 저 else와 if를 합쳐주면 됩니다.
#include <stdio.h>
int main(){
int n;
scanf("%d", &n);
if (n >= 90) printf("A+");
else if (n >= 85) printf("A");
else if (n >= 80) printf("B+");
else if (n >= 75) printf("B");
else printf("F");
return 0;
}
이렇게요. else if는 if 문의 조건이 부합하지 않으며 새로운 조건으로 판별하고 싶을 때 사용합니다.
이렇게 다 추가해주다가 else if의 조건까지 모두 부합하지 않으면 else의 조건식이 실행됩니다.
Switch~case 문
#include <stdio.h>
int main(){
int n;
printf("숫자를 입력해주세요 : ");
scanf("%d", &n);
switch(n)
{
case 1:
printf("1번방 전등 ON\n");
break;
case 2:
printf("2번방 전등 ON\n");
break;
case 3:
printf("3번방 전등 ON\n");
break;
default:
printf("우리집 전등은 3개입니다");
}
return 0;
}
Switch문은 말 그대로 집안의 전등 스위치를 켜듯이 입력 정수에 따라 case를 나누는 조건문입니다.
위의 예제를 보시면 n이라는 정수를 입력받고 n이 1,2,3에 따라 조건문이 실행됩니다.
if문과의 차이점을 비교해보자면 오직 정수만 비교할 수 있고 비교방식도 >, < 부등호 비교가 안되며,
==(같음) 밖에 안됩니다. 그리고 특이하게 중괄호가 아니라 : 를 사용합니다
마치 파이썬 같네요.
위의 코드를 분석해보자면 1을 입력하면 "1번 방 전등 ON" 이 출력되고 break로 종료되게 됩니다.
2,3 도 동일하며 그 이외의 값이 입력되면 default의 내용이 실행되고 코드가 종료됩니다.
즉 case 이외의 조건이 들어온다면 default가 실행됩니다.
그런데 위 코드에서 break가 없다면 어떻게 될까요?
#include <stdio.h>
int main(){
int n;
printf("숫자를 입력해주세요 : ");
scanf("%d", &n);
switch(n)
{
case 1:
printf("1번방 전등 ON\n");
case 2:
printf("2번방 전등 ON\n");
case 3:
printf("3번방 전등 ON\n");
default:
printf("우리집 전등은 3개입니다");
}
return 0;
}
입력 : 1
숫자를 입력해주세요 : 1
1번방 전등 ON
2번방 전등 ON
3번방 전등 ON
우리집 전등은 3개입니다
--------------------------------
Process exited after 1.068 seconds with return value 0
계속하려면 아무 키나 누르십시오 . . .
입력 : 2
숫자를 입력해주세요 : 2
2번방 전등 ON
3번방 전등 ON
우리집 전등은 3개입니다
--------------------------------
Process exited after 0.2782 seconds with return value 0
계속하려면 아무 키나 누르십시오 . . .
break를 지우고 실행해 봤습니다.
무엇이 보이시나요?
1을 입력하면 break로 종료가 안돼서 default까지 switch 내부의 모든 경우의 수(default 포함)가 실행되게 됩니다.
2를 입력하면 case 2 아래에 있는 모든 경우의 수가 출력되고요.
break의 역할은 자동차 브레이크처럼 딱 원하는 부분만 실행시키고 멈추게 하는 역할이라고 보시면 됩니다.
If문과 Switch 문의 사용?
그러면 어떨 때 if문을 사용하고 어떨 땐 Switch 문을 사용하게는 게 좋을까요?
일반적으로 if문은 조건이 적을 때 성능이 더 뛰어나고
조건이 많을 땐 switch문의 성능이 뛰어나다고 합니다.
switch 문은 조건이 많아져도 instruction 이 추가로 요구되지 않기 때문입니다.
물론 == 의 비교가 아니라면 switch 문을 쓸 수 없겠지만요.
switch문은 또한 if문에 비해 코드를 한눈에 볼 수 있다는 장점이 있습니다.
Break & Continue
#include <stdio.h>
int main(){
int n;
printf("숫자를 입력해주세요 : ");
scanf("%d", &n);
for (int i = 1; i<=n; i++){
if (i % 2 == 1)
continue;
printf("%3d", i);
}
return 0;
}
숫자를 입력해주세요 : 100
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44
46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98100
--------------------------------
Process exited after 1.421 seconds with return value 0
계속하려면 아무 키나 누르십시오 . . .
다음 코드를 실행해보면 짝수만 출력됩니다.
if (i % 2 == 1) continue; 이 코드 때문인데요.
Continue를 사용하면 조건식을 강제로 수행하게 됩니다. break와 용례가 반대죠.
또한 Switch에서 continue는 사용하실 수 없습니다.
오늘은 조건문(If, else, switch)에 대해서 알아봤습니다. 이해가 잘되시나요 ㅎㅎ?
요즘은 내용을 최대한 줄이고 액기스만 뽑아내고 있으니 읽으시는데 크게 부담은 없으셨을 거 같습니다.
조건문은 프로그래밍 전반적으로 안 쓰이는 곳이 없으니 확실히 알아두는 것이 좋을 거 같습니다.
다음 편에선 반복을 편하게 해주는 함수(function)에 대해 알아보겠습니다. 감사합니다 ^^
[C언어 강좌] #9 조건문 (If, ElseIf, Switch)
안녕하세요. 파일입니다 오늘 알아볼 것은 조건문입니다.
조건문은 따로 알아보진 않았지만 앞에서 자연스럽게 사용을 했습니다(If문)
오늘은 If문 이외에도 다른 조건문들을 알아보고 사용법을 알아보겠습니다.
If문
If라는 영어단어의 뜻은 '만약'입니다. 프로그래밍에서 if 역시 조건을 따지는 데 사용합니다.
위는 if문의 사용예제입니다.
if(조건)이고 조건 안의 값이 참이면 중괄호 안의 코드가 실행됩니다.
짝수를 판별하는 코드입니다.
짝수의 정의는 다음과 같으므로 조건문으로 입력받은 값을 2로 나눴을 때 나머지가 0인지 판별하고
0이라면 짝수라고 알려주면 됩니다. 대입 연산자(=)와 같음(==) 헷갈리지 마세요!
그리고 for문이던 if문이던 실행하는 실행 식이 하나일 때 이렇게 중괄호를 생략하여 표현할 수 있습니다.
그런데 저 코드에 9를 입력하면 뭐라고 나올까요??
if문은 조건이 참일 때 실행된다고 했습니다. 그런데 9를 2로 나누면 나머지가 0이 아니므로(홀수) 중괄호 내부의
코드가 실행되지 않음으로 아무것도 나오지 않습니다.
그러면 if문의 값이 참이 아닐 때 실행되는 조건식을 만드는 방법이 있습니다. else를 사용하면 됩니다.
요렇게 if문 바로 아래에 else 문을 추가해주면 if문의 조건이 충족되지 않을 때 else 문이 실행되게 됩니다.
짝수가 아니면 홀수니 이렇게 나눌 수 있는 것이죠.
그러면 조건문을 이용하여 점수를 입력하면 다음과 같은 기준으로 등급을 구분해봅시다.
조건에 맞게 코딩을 했습니다. 실행 식이 하나이니 if (n >= 90) printf("A+"); 로 생략했고
else를 사용할 때도 실행 식이 if (n >= 85) printf("A"); 하나라 중괄호를 생략했습니다.
값도 잘 나오고 하는데.. if문과 else 문이 너무 중첩돼서 지저분해 보입니다.
어떻게 할까요?
이럴 땐 저 else와 if를 합쳐주면 됩니다.
이렇게요. else if는 if 문의 조건이 부합하지 않으며 새로운 조건으로 판별하고 싶을 때 사용합니다.
이렇게 다 추가해주다가 else if의 조건까지 모두 부합하지 않으면 else의 조건식이 실행됩니다.
Switch~case 문
Switch문은 말 그대로 집안의 전등 스위치를 켜듯이 입력 정수에 따라 case를 나누는 조건문입니다.
위의 예제를 보시면 n이라는 정수를 입력받고 n이 1,2,3에 따라 조건문이 실행됩니다.
if문과의 차이점을 비교해보자면 오직 정수만 비교할 수 있고 비교방식도 >, < 부등호 비교가 안되며,
==(같음) 밖에 안됩니다. 그리고 특이하게 중괄호가 아니라 : 를 사용합니다
마치 파이썬 같네요.
위의 코드를 분석해보자면 1을 입력하면 "1번 방 전등 ON" 이 출력되고 break로 종료되게 됩니다.
2,3 도 동일하며 그 이외의 값이 입력되면 default의 내용이 실행되고 코드가 종료됩니다.
즉 case 이외의 조건이 들어온다면 default가 실행됩니다.
그런데 위 코드에서 break가 없다면 어떻게 될까요?
break를 지우고 실행해 봤습니다.
무엇이 보이시나요?
1을 입력하면 break로 종료가 안돼서 default까지 switch 내부의 모든 경우의 수(default 포함)가 실행되게 됩니다.
2를 입력하면 case 2 아래에 있는 모든 경우의 수가 출력되고요.
break의 역할은 자동차 브레이크처럼 딱 원하는 부분만 실행시키고 멈추게 하는 역할이라고 보시면 됩니다.
If문과 Switch 문의 사용?
그러면 어떨 때 if문을 사용하고 어떨 땐 Switch 문을 사용하게는 게 좋을까요?
일반적으로 if문은 조건이 적을 때 성능이 더 뛰어나고
조건이 많을 땐 switch문의 성능이 뛰어나다고 합니다.
switch 문은 조건이 많아져도 instruction 이 추가로 요구되지 않기 때문입니다.
물론 == 의 비교가 아니라면 switch 문을 쓸 수 없겠지만요.
switch문은 또한 if문에 비해 코드를 한눈에 볼 수 있다는 장점이 있습니다.
Break & Continue
다음 코드를 실행해보면 짝수만 출력됩니다.
if (i % 2 == 1) continue; 이 코드 때문인데요.
Continue를 사용하면 조건식을 강제로 수행하게 됩니다. break와 용례가 반대죠.
또한 Switch에서 continue는 사용하실 수 없습니다.
오늘은 조건문(If, else, switch)에 대해서 알아봤습니다. 이해가 잘되시나요 ㅎㅎ?
요즘은 내용을 최대한 줄이고 액기스만 뽑아내고 있으니 읽으시는데 크게 부담은 없으셨을 거 같습니다.
조건문은 프로그래밍 전반적으로 안 쓰이는 곳이 없으니 확실히 알아두는 것이 좋을 거 같습니다.
다음 편에선 반복을 편하게 해주는 함수(function)에 대해 알아보겠습니다. 감사합니다 ^^
'프로그래밍 강좌 > C' 카테고리의 다른 글
COMMENT WRITE