ề ề

ệ ệ Đi u ki n Đi u ki n

ươ

Ch

ng 5

ụ ụ

ọ ọ M c tiêu bài h c M c tiêu bài h c

ự  Tìm hi u v  c u trúc l a ch n ọ ề ấ

ể • L nh ệ if  • L nh ệ if – else • L nh nhi u  ề  if ệ • L nh ệ ồ  if l ng nhau

Elementary Programming with C/Session  5/ 2 of 19

ệ   L nh switch

ệ ệ

ề ề

ệ ệ

Câu l nh đi u ki n Câu l nh đi u ki n

 Các câu l nh đi u ki n cho phép chúng ta  ự

ề ệ

ệ ủ ươ ng th c hi n c a ch ng

 M t câu l nh đi u ki n tr  v  giá tr  đúng

ệ ả ề ề ệ ị

ố ẻ

ố ẵ

 Ví d : ụ Đ  xác đ nh m t s  là s  ch n hay s  l ư

Ố Elementary Programming with C/Session  Ố i s  d  không b ng 0, s  đó là “S   5/ 3 of 19

ộ ố ể ế chúng ta ti n hành nh  sau : ộ ố 1) Nh p vào m t s ố ư ố 2) Chia s  đó cho 2 đ  xác đ nh s  d Ẵ ế ố ư 3) N u s  d  là 0, s  đó là “S  CH N” ố ượ ạ ố ư 4) Ng c l L ”Ẻ

ệ ổ ướ thay đ i h trình ộ ặ ho c sai

ự ự

ấ ấ

ọ ọ Các c u trúc l a ch n Các c u trúc l a ch n

Elementary Programming with C/Session  5/ 4 of 19

ự ệ ấ ạ ọ C cung c p hai d ng câu l nh l a ch n

ệL nh if L nh if

 Cú pháp:

if (expression)

statement;

 N u bi u th c c a l nh if có giá tr  đúng

ế ể

ố ệ ệ ự c th c

Elementary Programming with C/Session  5/ 5 of 19

ị ứ ủ ệ ượ (true), kh i l nh theo sau l nh  if  đ thi

ệL nh if  (tt.) L nh if  (tt.)

ươ

ị ự

ệ . ng trình hi n th  các giá tr  d a vào m t đi u ki n

Ch

ị #include void main(){ int x, y; char a = ‘y’; x = y = 0; if (a == ‘y’){ x += 5; printf(“The numbers are %d and \t

%d”,x,y); }

}

Elementary Programming with C/Session  5/ 6 of 19

ệL nh if – else L nh if – else

if (expression) statement;

else

statement;

Elementary Programming with C/Session  5/ 7 of 19

ệL nh if – else (tt.) L nh if – else (tt.)

ể ị true, kh i ố

ể ế ệ l nh theo sau l nh if đ  N u bi u th c c a if  ế

ượ ệ ọ

 N u bi u th c c a if tr  v  giá tr   ả ề ứ ủ ượ ự ệ c th c thi ị ả ề ứ ủ không tr  v  giá tr   ự ượ ệ c th c thi true thì các l nh theo sau else đ  L nh else là m t tùy ch n. L nh else đ ệ ộ c  ứ ể ự ể

Elementary Programming with C/Session  5/ 8 of 19

ệ dùng đ  th c thi các l nh khi bi u th c trong  ả ề if tr  v  giá tr ị false

ệL nh if – else (tt.) L nh if – else (tt.)

ố ẵ ộ ố ị ng trình xác đ nh m t s  là s  ch n hay Ch

ươ lẻ

#include void main(){

int num ,res ; printf(“Enter a number :”); scanf(“%d”,&num); res = num % 2; if (res == 0)

printf(“Then number is Even”);

else

printf(“The number is Odd”);

Elementary Programming with C/Session  5/ 9 of 19

}

ệL nh if–else–if L nh if–else–if

Cú pháp:

if (expression)

statement;

else if (expression)

statement;

else if (expression)

Elementary Programming with C/Session  5/ 10 of 19

statement; … else statement;

ệL nh if–else–if (tt.) L nh if–else–if (tt.)

ượ ọ ệ  L nh ệ c g i là l nh if ­ else ­ if còn đ if­

ậ else­if b c thang

ị ị c xác đ nh giá tr  theo

Elementary Programming with C/Session  5/ 11 of 19

ướ ừ  Các bi u th c đ ể ng t ứ ượ ố  trên xu ng h

ệL nh if–else–if (tt.) L nh if–else–if (tt.)

ươ

ng trình hi n th  thông báo d a vào m t giá tr  :

Ch #include #include

main() {

int x; x = 0; clrscr (); printf(“Enter Choice (1 - 3) : “); scanf(“%d”, &x); if (x == 1)

printf (“\nChoice is 1”);

else if ( x == 2)

printf (“\nChoice is 2”);

else if ( x == 3)

printf (“\nChoice is 3”);

else printf (“\nInvalid Choice “);

}

Elementary Programming with C/Session  5/ 12 of 19

ệ ệ

ồ ồ L nh if l ng nhau L nh if l ng nhau

 L nh ệ

ượ ặ c đ t if l ng nhau là m t l nh

ồ ộ ệ ộ ệ if đ if ho c ặ else khác

ớ ế ệ ộ ế ợ else luôn k t h p v i m t  else

ộ ệ ố ệ if g n nh t cùng kh i l nh n u l nh  ớ ư ượ ế ợ c k t h p v i m t l nh  if nào

Elementary Programming with C/Session  5/ 13 of 19

trong m t l nh   ộ ệ  Trong C, m t l nh  ấ ầ l nh ệ đó ch a đ khác

ồ ồ

ệ ệ

L nh if l ng nhau (tt.) L nh if l ng nhau (tt.)

 Cú pháp:

c k t h p v i

 L nh else bên trong đ ớ if(exp3) ượ ế ợ  Theo chu n ANSI, m t trình biên d ch h  tr   ỗ ợ ộ ẩ

ứ ồ

ít nh t là 15 m c l ng nhau

Elementary Programming with C/Session  5/ 14 of 19

ồ ồ

ệ ệ

L nh if l ng nhau (tt.) L nh if l ng nhau (tt.)

#include #include void main (){

int x, y; x = y = 0; clrscr (); printf (“Enter Choice (1 - 3) : “); scanf (“%d”, &x); if (x == 1){ printf(“\nEnter value for y (1 - 5) : “); scanf (“%d”, &y); if (y <= 5)

printf(“\nThe value for y is : %d”, y); else printf(“\nThe value of y exceeds 5 “);

printf (“\nChoice entered was not 1”);

} else

}

Elementary Programming with C/Session  5/ 15 of 19

ệL nh switch L nh switch

 L nh ệ

ướ ng, nó  ộ

ị ủ ằ ặ ằ

ộ ộ ự ọ switch là m t b  l a ch n đa h ứ ớ ể ộ so sánh giá tr  c a m t bi u th c v i m t  ố danh sách các h ng s  nguyên ho c h ng ký  tự

Elementary Programming with C/Session  5/ 16 of 19

 Khi g p m t s  so sánh kh p, các l nh k t  ế ượ ộ ự ằ ặ ớ ớ ự c th c thi ợ h p v i  h ng đó đ

ệL nh switch (tt.) L nh switch (tt.)

 Cú pháp:

Elementary Programming with C/Session  5/ 17 of 19

ệL nh switch (tt.) L nh switch (tt.)

Ch

ự ườ  th

ng trình ki m tra m t ký t ộ

ng đ ộ

ộ ươ là m t nguyên âm, là ký t

ậ ượ c nh p vào  ụ  ‘z’ hay là m t ph  âm

#include #include

main (){

char ch; clrscr (); printf (“\nEnter a lower cased alphabet (a - z) : “);

scanf(“%c”, &ch);

còn tiếp …

Elementary Programming with C/Session  5/ 18 of 19

ệL nh switch (tt.) L nh switch (tt.)

if (ch < ‘a’ || ch > ‘z’)

printf(“\nCharacter not a lower cased alphabet”);

else

switch (ch) {

case ‘a’ : case ‘e’ : case ‘i’ : case ‘o’ : case ‘u’ :

printf(“\nCharacter is a vowel”); break;

case ‘z’ :

printf (“\nLast Alphabet (z) was entered”); break;

default :

printf(“\nCharacter is a consonant”); break;

}

}

Elementary Programming with C/Session  5/ 19 of 19