Blog/JAVA기반 스마트웹 개발2021

프로그래밍 언어 활용 part 1 - 조건문

고구마달랭이 2021. 7. 25. 23:51

조건문

[학습내용] [학습목표]
 if
 switch case
 if 구문의 기본 문법을 알고 조건식을 구현할 수 있다.
 switch case 구문의 기본 문법을 알고 조건식을 구현할 수 있다.
 표준 입력함수를 알고 사용할 수 있다.

 

if문

 

1. if

기본 문법

▪ 조건을 판단하여 참인 경우 문장 수행

형식 if(조건식)
문장 ;
예제 if( score < 60 )
printf(“불합격입니다.n”);

 

 

예제

▪ 변수 a가 양수이면 “Positive”를 출력하시오.

int a=5;

if (a>0)
  printf(“Positive”);

 

 

▪ 변수 a가 양수이면 a1을 할당하고 “Positive”를 출력하시오.

int a=5;

if (a>0)
{
  a=1;
  printf(“Positive”);
}  // 조건에 따른 수행 문장이 두 문장 이상인 경우는 { }로 시작과 끝을 알림

 


2. if ~ else

기본 문법

형식 if (조건식)
문장1 ;
else
문장2 ;

예제 if ( score < 60 )
printf(“불합격입니다.n”);
else
printf(“합격입니다.n”);

 

 

예제

▪ 변수 a가 양수이면 “Positive”를 출력하고 음수이면 “Negative”를 출력하시오.

int a=5;

if (a>0)
  printf(“Positive”);
else
  printf(“Negative”);

 

 

▪ 변수 a가 홀수이면 “Odd”를 출력하고 짝수이면 “Even”를 출력하시오.

int a=5;

if (a%2)
  printf(“Odd”);
else
  printf(“Even”);

 


3. if ~ else if ~ else

기본 문법

형식 if (조건식 1)
문장1 ;
else if (조건식 2)
문장2 ;
else if (조건식 3)
문장3 ;
∙∙∙∙∙∙∙
else
문장n ;
예제 if ( age < 19 )
printf(“청소년 요금입니다.n”);
else if ( age >=65 )
printf(“경로 우대 요금입니다.n”);
else
printf(“성인 요금입니다.n”);

 

 

예제

▪ 변수 a가 양수이면 “Positive”를 출력하고 음수이면 “Negative”, 0이면 “Zero”를 출력하시오.

int a=5;

if (a>0)
  printf(“Positive”);
else if (a<0)
  printf(“Negative”);
else
  printf(“Zero”);

 


 

4. 중첩 if문

▪ 변수 a가 양수인 경우 100 이상이면 “Great”, 100 미만이면 “Good”, 음수이면 “Negative”, 0이면 “Zero”를 출력하시오.

int a=5;
if (a>0)
{
  if(a>=100)
 	 printf(“Great”);
  else
 	 printf(“Good”);
}
  else if (a<0)
   	 printf(“Negative”);
  else
   	 printf(“Zero”);

 

switch case문

 

1. switch문

기본 문법

switch( 값 )
{
  case 값1 : 문장1-1; 문장1-2; break;
  case 값2 : 문장2-1; 문장2-2; break;
  case 값3 : 문장3-1; 문장3-2; break;
  . . .
  default : 문장d1; 문장d2;
}

 

 

예제 1

int a=2;

switch( a )
{
	case 1 : printf(“one”); break;
	case 2 : printf(“two”); break;
	case 3 : printf(“three”); break;
	default : printf(“other”);
}

char a=‘K’;

switch( a )
{
	case ‘A’ : printf(“Ahn”); break;
	case ‘L’ : printf(“Lee”); break;
	case ‘K’ : printf(“Kim”); break;
	default : printf(“other”);
}

 

 

예제 2

int a=2;

switch( a )
{
  case 1 : printf(“one”);
  case 2 : printf(“two”);
  case 3 : printf(“three”);
  default : printf(“other”);
}

 

 

예제 3

int a=2;

switch( a%3 )
{
  case 0 : printf(“zero”); break;
  case 1 : printf(“one”); break;
  case 2 : printf(“two”); break;
}

char a=85;

switch( a )
{
  case a>80 : printf(“one”); break;
  case a<30 : printf(“two”); break;
  default : printf(“other”);
}

 

 

ifswitch 비교

char grade;
scanf(“%c”, &grade);
if ( grade == ‘A’)
printf(“Excellent”);
else if ( grade == ‘B’)
printf(“Good”);
else if ( grade == ‘C’)
printf(“Normal”);
else if ( grade == ‘D’)
printf(“Bad”);
else
printf(“Fail”);

char grade;
scanf(“%c”, &grade);
switch(grade)
{
case ‘A’ : printf(“Excellent”); break;
case ‘B’ : printf(“Good”); break;
case ‘C’ : printf(“Normal”); break;
case ‘D’ : printf(“Bad”); break;
default : printf(“Fail”); break;
}



 


 

2. 입력문

scanf() 소개

▪ scanf()를 이용한 입력

▪ 표준입력으로부터 다양한 자료를 지정한 변수에 저장

▪ 형식지정자(%d %c %f %lf) 사용

▪ 공백, enter 전 까지를입력

▪ 형식 : scanf(“형식지정자”, &변수명)

 

 

정수 입력

▪ 형식지정자 : %d

int a, b;

scanf(“%d”, &a);
printf(“%d”, a);

scanf(“%d”, &b);
printf(“%d” ,b);

scanf(“%d %d”,&a, &b);
printf(“%d %d”, a, b);

 

 

실수 입력

▪ 형식지정자 : %f(float) %lf(double)

float a; double b;

scanf(“%f”, &a);
printf(“%f”, a);

scanf(“%lf”, &b);
printf(“%f” ,b);

scanf(“%f %lf”,&a, &b);
printf(“%f %f”, a, b);

 

 

문자 입력

형식지정자 : %c

단일문자

char a,vb;

scanf(“%c %c”, &a, &b);
printf(“%c %c”, a, b);

scanf(“%c”, &a);
printf(“%c”, a);

scanf(“%c”, &b);
printf(“%c” ,b);

 

 


 

 

평가하기

 

Q1. if 구문과 관련하여 옳지 않은 설명은 무엇인가?


① if문 내에 if문을 포함시킬 수 있다.
② 조건에 따라 수행할 문장이 2문장 이하이면 { }는 생략 가능하다. 
③ if ~ else if를 사용할 때 반드시 else문을 사용하지 않아도 된다.
④ if문에서 조건에 따라 수행할 문장은 여러 문장을 기술할 수 있다.

 

한 문장인 경우만 { }가 생략 가능합니다.




Q2. switch ~ case 구문에서 분기 값이 해당하는 case가 없을 경우, 수행할 문장을 기술할 때 사용할 문장은 무엇인가?


break
default 
true
all

 

해당하는 case가 없는 경우에는 default에 기술한 문장을 수행합니다.

 



Q3. scanf()를 이용하여 표준 입력에서 double형 데이터를 입력하고자 할 때 형식문자로 옳은 것은 무엇인가?


%c
%d
③ %f
④ %lf 

연산 결과 정수로 몫과 나머지가 출력됩니다.

 

 

 


 

 

학습정리

 

1. if문

• 조건에 따라 분기되는 if문은 크게 3가지 형태로 구분됨

• if문 내에 중첩해서 if문을 기술하는 것이 가능함

• 조건에 따라 수행하는 문장이 한 문장이면 { }는 생략 가능함

 

2. switch case문

• switch문에서 분기 조건으로 상수, 정수, 수식이 사용될 수 있음

• 조건에 일치하는 case가 없는 경우 수행할 문장은 default에 기술함

• 표준입력 함수로 scanf()를 사용하고 입력을 위해 형식지정자를 사용함

• 입력 버퍼를 비우는 함수로 fflush(stdin);함수가 있음