Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
IF Statement
3. 비교문변환 (1)
 Type 1  Type 2
2
조건 T
F
D
C
B
A
E
if( 조건 )
{
A ;
B ;
}
else
{
C ;
D ;
}
E ;
조건 T
F
D
C
B
A
if( 조건 )
{
A ;
...
2. 비교문 변환 (2)
 if 문
3
if( 조건 )
{
A ;
B ;
}
else
{
C ;
D ;
}
E ;
조건이 만족되면 하는 일
조건이 거짓이면 하는 일
if 문 다음에 할 문장
조건 T
F
D
C
B
A
E
2. 비교문 변환 (3)
 Example
4
조건1 T
F
B C
D
A
조건2
E
if( 조건1 )
{
A;
}
else
{
if( 조건2 )
{
C ;
}
else
{
B ;
}
D ;
}
E ;
TF
Example 2
 Read a number and print “Yes” if it is 2 or “No”
5
Start
x
x
“Yes”
Stop
x = 2
“No”
T F
#include <stdio.h>
int ...
Example 3
 Find the maximum among 3 numbers
6
Start
Var a, b, c
Stop
a > b
a
T F
a > c
Input a, b, c
b > c
c b c
#include...
Example 4
 Sort 3 numbers
7
Start
a, b, c
Stop
a > b
a, b, c
T F
b > c
a, b, c
a > c
a, c, b b, a, c b, c, a
a > c b > c
...
8
if and if-else Statements
 Nested if statement if ( 조건1 ) {
A;
}
else {
if( 조건2 ) {
B;
}
else {
if( 조건3 ) {
C;
}
else {...
9
if and if-else Statements
 Nested if statement
if ( 조건1 ) {
A;
}
else if( 조건2 ) {
B;
}
else if( 조건3 ) {
C;
}
else {
D;
...
10
if and if-else Statements
 Nested if statement
– 문자를 입력 받아 대문자, 소문자, 숫자, 그 외 문자인지 확인
하시오.
scanf( “%c”, &ch ) ;
if (‘0’...
switch 문
 특정형태의 Nested if statement
11
변수==값1
변수==값2
변수==값3
D
E
A
B
C
T
F
T
F
T
F
switch( 변수 ) {
case 값1 : A ;
break ;
ca...
switch 문
 swtich문을 Nested if 문으로 변환하기
12
switch( 변수 ) {
case 값1 : A ;
break ;
case 값2 : B ;
break ;
case 값3 : C ;
break ;...
switch 문
 switch에서 break의 역할
– grade == 4 일 때
13
switch (grade)
{
case 4 : printf(“A”) ;
break;
case 3 : printf(“B”) ;
br...
switch 문
 switch에서 break의 역할
– grade가 ‘A’, ‘B’, ‘C’, ‘D’ 이면 “pass”, ‘F’이면 “fail”, 그 외는
“error”를 출력
14
switch (grade) {
ca...
15
switch 문
 switch에서 break의 역할
– 앞의 예제를 if-else로 변환
if ( grade == ‘A’ || grade == ‘B’ || grade == ‘C’ || grade == ‘D’ )
...
16
Short-Circuit
 Short-Circuit Evaluation
– &&와 ||의 연산에서 true와 false의 값이 결정됨과 동시에 계
산과정은 멈추게 된다.
 expr1 && expr2
– expr...
17
Short-Circuit
 Short-Circuit Evaluation의 예
int i=2, j=3;
if( (i == 2) && ( j++ == 3) )
printf( “Truen” ) ;
else
printf...
18
Conditional Operator
 Conditional Operator Syntax
– 조건식 연산자 ? : 는 삼항 연산자이다.
– expr1이 먼저 계산된 후, 참이면 expr2가 실행, 거짓이면
exp...
19
Conditional Operator
 Example
int a = 5, b = 6 ;
int max = (a < b) ? b : a ;
int min = (a > b) ? b : a ;
Upcoming SlideShare
Loading in …5
×

3 2. if statement

461 views

Published on

  • Be the first to comment

  • Be the first to like this

3 2. if statement

  1. 1. IF Statement
  2. 2. 3. 비교문변환 (1)  Type 1  Type 2 2 조건 T F D C B A E if( 조건 ) { A ; B ; } else { C ; D ; } E ; 조건 T F D C B A if( 조건 ) { A ; B ; } C ; D ;
  3. 3. 2. 비교문 변환 (2)  if 문 3 if( 조건 ) { A ; B ; } else { C ; D ; } E ; 조건이 만족되면 하는 일 조건이 거짓이면 하는 일 if 문 다음에 할 문장 조건 T F D C B A E
  4. 4. 2. 비교문 변환 (3)  Example 4 조건1 T F B C D A 조건2 E if( 조건1 ) { A; } else { if( 조건2 ) { C ; } else { B ; } D ; } E ; TF
  5. 5. Example 2  Read a number and print “Yes” if it is 2 or “No” 5 Start x x “Yes” Stop x = 2 “No” T F #include <stdio.h> int main() { int x ; scanf( “%d”, &x ) ; if( x == 2 ) { printf( “Yesn” ) ; } else { printf( “Non” ) ; } return 0; }
  6. 6. Example 3  Find the maximum among 3 numbers 6 Start Var a, b, c Stop a > b a T F a > c Input a, b, c b > c c b c #include <stdio.h> int main() { int a, b, c ; scanf( %d%d%d”, &a, &b, &c ) ; if(a > b ) { if(a > c ) { printf( “%dn”, a ) ; } else { printf( “%dn”, c ) ; } } else { if( b > c ) { printf( “%dn”, b ) ; } else { printf( “%dn”, c ) ; } } return 0; }
  7. 7. Example 4  Sort 3 numbers 7 Start a, b, c Stop a > b a, b, c T F b > c a, b, c a > c a, c, b b, a, c b, c, a a > c b > c c, a, b c, b, a T F T F T F T F #include <stdio.h> int main() { int a, b, c ; scanf( %d%d%d”, &a, &b, &c ) ; if( a > b ) { if( b > c ) { printf( “%d %d %dn”, a, b, c ) ; } else { if( a > c ) { printf( “%d %d %dn”, a, c, b ) ; } else { printf( “%d %d %dn”, c, a, b ) ; } } } else { if( a > c ) { printf( “%d %d %dn”, b, a, c ) ; } else { if( b > c ) { printf( “%d %d %dn”, b, c, a ) ; } else { printf( “%d %d %dn”, c, b, a ) ; } } } return 0; }
  8. 8. 8 if and if-else Statements  Nested if statement if ( 조건1 ) { A; } else { if( 조건2 ) { B; } else { if( 조건3 ) { C; } else { D; } } } E; 조건1 조건2 조건3 D E A B C T F T F T F
  9. 9. 9 if and if-else Statements  Nested if statement if ( 조건1 ) { A; } else if( 조건2 ) { B; } else if( 조건3 ) { C; } else { D; } E; 조건1 조건2 조건3 D E A B C T F T F T F
  10. 10. 10 if and if-else Statements  Nested if statement – 문자를 입력 받아 대문자, 소문자, 숫자, 그 외 문자인지 확인 하시오. scanf( “%c”, &ch ) ; if (‘0’ <= c && c <= ‘9’) printf( “숫자n” ) ; else if ( ‘A’ <= c && c <= ‘Z’) printf( “대문자n” ) ; else if (‘a’ <= c && c <= ‘z’) printf( “소문자n” ) ; else printf( “그외 문자n” ) ;
  11. 11. switch 문  특정형태의 Nested if statement 11 변수==값1 변수==값2 변수==값3 D E A B C T F T F T F switch( 변수 ) { case 값1 : A ; break ; case 값2 : B ; break ; case 값3 : C ; break ; default : D ; }
  12. 12. switch 문  swtich문을 Nested if 문으로 변환하기 12 switch( 변수 ) { case 값1 : A ; break ; case 값2 : B ; break ; case 값3 : C ; break ; default : D ; } if( 변수==값1 ) { A ; } else if(변수==값2 ) { B ; } else if(변수==값3 ) { C ; } else { D ; }
  13. 13. switch 문  switch에서 break의 역할 – grade == 4 일 때 13 switch (grade) { case 4 : printf(“A”) ; break; case 3 : printf(“B”) ; break; case 2 : printf(“C”) ; break; case 1 : printf(“D”) ; break; default : printf(“Illegal grade”); } switch (grade) { case 4 : printf(“A”) ; case 3 : printf(“B”) ; case 2 : printf(“C”) ; case 1 : printf(“D”) ; default : printf(“Illegal grade”); }
  14. 14. switch 문  switch에서 break의 역할 – grade가 ‘A’, ‘B’, ‘C’, ‘D’ 이면 “pass”, ‘F’이면 “fail”, 그 외는 “error”를 출력 14 switch (grade) { case ‘A’ : case ‘B’ : case ‘C’ : case ‘D’ : printf(“passn”); break; case ‘F’ : pritnf(“failn”); break; default : printf(“errorn”); break; }
  15. 15. 15 switch 문  switch에서 break의 역할 – 앞의 예제를 if-else로 변환 if ( grade == ‘A’ || grade == ‘B’ || grade == ‘C’ || grade == ‘D’ ) printf( “passn” ) ; else if( grade == ‘F’ ) printf( “failn” ) ; else printf( “errorn” ) ;
  16. 16. 16 Short-Circuit  Short-Circuit Evaluation – &&와 ||의 연산에서 true와 false의 값이 결정됨과 동시에 계 산과정은 멈추게 된다.  expr1 && expr2 – expr1의 결과가 F이면, expr2 비교가 수행되지 않음.  expr1 || expr2 – expr1의 결과가 T이면, expr2 비교가 수행되지 않음.
  17. 17. 17 Short-Circuit  Short-Circuit Evaluation의 예 int i=2, j=3; if( (i == 2) && ( j++ == 3) ) printf( “Truen” ) ; else printf( “Falsen” ) ; printf(“%d %dn”, i, j); int i=2, j=3; if( (i == 2) || (j++ == 3) ) printf( “Truen” ) ; else printf( “Falsen” ) ; printf(“%d %dn”, i, j); int i=2, j=3; if( (i == 3) && ( j++ == 3) ) printf( “Truen” ) ; else printf( “Falsen” ) ; printf(“%d %dn”, i, j); int i=2, j=3; if( (i == 3) || (j++ == 3) ) printf( “Truen” ) ; else printf( “Falsen” ) ; printf(“%d %dn”, i, j);
  18. 18. 18 Conditional Operator  Conditional Operator Syntax – 조건식 연산자 ? : 는 삼항 연산자이다. – expr1이 먼저 계산된 후, 참이면 expr2가 실행, 거짓이면 expr3이 수행된다.  if-else 문 Conditional Operator expr1 ? expr2 : expr3 if ( y < z) x = y; else x = z x = ( y < z ) ? y : z
  19. 19. 19 Conditional Operator  Example int a = 5, b = 6 ; int max = (a < b) ? b : a ; int min = (a > b) ? b : a ;

×