앞서 배운 내용들은 차례로 진행되는 프로그램이었다.
드디어 조건문에 들어왔다.
기본 If문의 경우 조건식을 만족하지 않으면 실행문을 실행하지 않고, 만족하면 실행문을 실행하게 된다.
#include <stdio.h>
int main(void)
{
int a = 20;
int b = 0;
if (a > 10) // 조건식: a가 10보다 크므로 조건식은 참
{
b = a; // 실행문: b = a 대입문 실행
}
printf("a = %d, b = %d\n", a, b); // 대입이 실행되면 두 값은 같음
return 0;
}
위의 식에서 a는 20이기 때문에, 조건문을 만족하게 되고 결국 b=20이 되어 두 값은 같게 된다.
if문의 경우 중괄호를 사용하고 들여쓰기를 사용하는 것이 중요하다.
조건을 만족하지 못하는 경우에 실행하게 될 별도의 실행문.
#include <stdio.h>
int main(void)
{
int a = 10;
if (a >= 0)
{
a = 1;
}
else
{
a = -1;
}
printf("a : %d\n", a);
return 0;
}
a = 10이므로 0보다 커서 1로 출력된다.
a ≥10 을 만족했기 때문에 else문은 건너뛴다.
내 실수: if (a≥ 0 )부분에서 ;을 표시할 필요가 없다.
if (a≥ 0); 이런식으로 코드를 작성해서 오류가 발생했다.
*2개의 if문을 사용하기보다는, if문과 else문을 사용하는 것이 효율적이다.
3개 이상의 실행문에서 반드시 하나를 선택해야 하는 경우에 사용한다.
#include <stdio.h>
int main(void)
{
int a = 0, b = 0;
if (a > 0) // 조건식1: a가 0보다 크면 b에 1대입
{
b = 1;
}
else if (a == 0) // 조건식2: a가 0보다 크지 않고 a가 0이면 b에 2대입
{
b = 2;
}
else // a가 0보다 크지 않고 0도 아니면 b에 3대입
{
b = 3;
}
printf("b : %d\n", b); // if문으로 결정된 b값 출력
return 0;
}
a는 0이기 때문에,
조건식 1 무시하고, 조건식 2에 들어 맞는다. 그러면 어차피 조건식 3도 무시하기에… b=2가 된다.
어떤 조건을 검사하기 전에 선행조건이 있다면, if문 안에 if문을 넣어 사용한다.
#include <stdio.h>
int main(void)
{
int a = 20, b = 10;
if (a > 10) // a가 10보다 크면 9 ~ 16행 실행, 작거나 같으면 18행으로 이동
{
if(b >= 0) // b가 0이상이면 b에 1을 대입하고 18행으로 이동
{
b = 1;
}
else
{
b = -1; // b가 0보다 작으면 b에 -1대입하고 18행으로 이동
}
}
printf("a : %d, b : %d\n", a, b);
return 0;
}
#include <stdio.h>
int main(void)
{
int a = 10, b = 20;
if(a < 0) // a가 0보다 작지만
{
if (b > 0) // b가 0보가 크면
{
printf("ok"); // ok를 출력
}
}
else
{
printf("ok"); // a가 0이상이면 ok출력
}
return 0;
}
위의 식에서 어차피
if(a < 0) // a가 0보다 작지만 이 부분이 참이면 아래에 전개되는 내용부분들은 전부 참이기 때문에
사실상 {}를 생략해도 된다.
*질문?
코드를 작성할때 printf(”OK”) 이렇게 대문자를 입력했는데, 정상적으로 출력되지 않았다.
코드 작성의 경우 대문자를 사용하는 것은 불가능한가요?? → 상관없어! 그냥 내가 다른 부분 실수한 거임