Pernyataan Bersyarat (Cnditinal Statement) Matakuliah : DIK-003 Pemgraman I Genap Tahun Ajaran 2011/2012 Dr. Taufik Fuadi Abidin, M.Tech Irvanizam Zamanhuri, M.Sc Email: tfa@infrmatika.unsyiah.ac.id irvanizam.zamanhuri@infrmatika.unsyiah.ac.id
Intrductin Prgram-prgram bahasa C dieksekusikan secara berurutan dari baris ke baris. Tetapi, bisa dikntrl eksekusinya dgn suatu mekanisme pengntrl, dimana kita dapat membandingkan sesuatu dan memberikan suatu decisin
Relatinal Operatrs: Equal (sama dengan) == nt equal (tidak sama dengan)!= less than (lebih kecil): < greater than (lebih besar): > less than r equal t (lebih kecil atau sama dengan): <= greater than r equal t (lebih besar atau sama dengan): >= Nt (tidak):! And (dan): && Or (atau):
If statements: Bentuk umumnya adalah: if (<cnditinal expressin>) { <ne r mre statements> Dimana <cnditinal expressin> harus bernilai true untuk mengeksekusi <ne r mre statements>
Cnth int main(){ int x=0; if(x!=0){ Cnditinal expressin printf( Nilai x sama dengan nl ); printf( Nilai x tidak sama dengan nl );
If/else statements Bentuk umumnya adalah: if (<cnditinal expressin #1>) { <ne r mre statements> else if (<cnditinal expressin #2>) { <ne r mre statements> else { <ne r mre statements> Dimana <cnditinal expressin> bleh diberikan lebih dari pada dua.
Cnth int main(){ flat uts=70, nilai, uas=90, tugas=75; printf( Tugas: ); scanf( %f,&tugas); printf( UTS: ); scanf( %f,&uts); printf( UAS: ); scanf( %f,&uas); nilai = 0.2 * tugas + 0.3 * uts + 0.5 * uas; if (nilai >= 90) printf( Nilai A ); else if (nilai >= 80) printf( Nilai B ); else if (nilai >= 65) printf( Nilai C ); else if (nilai >= 50) printf( Nilai D ); else printf( Nilai E ); return 0;
Switch Statement Bentuk Umumnya: switch (<variable>) { case <value 1>: <ne r mre statements> break; case <value 2>: <ne r mre statements> break; default: <ne r mre statements> break; //end switch
Cnth int main() { int grade; printf ("Input grade :"); scanf("%d", & grade); switch (grade) { case 1: case 2: case 3: case 4: case 5: default: printf("fall (F)\n");break; printf("bad (D)\n");break; printf("gd (C)\n");break; Output: printf("very Gd (B)\n");break; printf("excellent (A)\n");break; Input grade: 4 Very Gd (B) printf("yu have inputted false grade\n"); break; // break isn t necessary here
Bagaimana utputnya??? int main() { int grade = 3; switch (grade) { case 1: printf("fall (F)\n");break; case 2: printf("bad (D)\n");break; case 3: printf("gd (C)\n"); case 4: printf("very Gd (B)\n");break; case 5: printf("excellent (A)\n");break; default: printf("yu have inputted false grade\n"); break; // break isn t necessary here
Break dan Cntinue Statements Statement Cntinue menyediakan cara yang nyaman untuk memaksa cmpiler untuk jump pada statement perulangan. Statement break digunakan untuk mengakhiri eksekusi pada statemen prulangan. Bentuk Umum Break: break; Bentuk Umum cntinue: cntinue;
Cnth: int main() { int n; d { printf(" \nenter the number :"); scanf("%d", &n); if (n < 0) { break; if (n >10) { printf("skip the value\n"); cntinue; printf("the number is: %d", n); while (n!= 0); Enter the number :1 The number is:1 Enter the number :51 Skip the value Enter the number:-1
int main() { int small=2, large=20, skip=4, target=6; int MAXSMALL=65535; // set up 3 stp cnditins fr the lp while (small < large && large > 0 && small < 65535) { small++; if (small % skip == 0) // skip the decrement? { printf("skipping n %d",small); cntinue; if (large == target) // exact match fr the target? { printf("target reached! ); break; large-=2; // end f while lp Bagaimana Outputnya?? printf("\nsmall: %d Large: %d",small,large); return 0;
Output: Output: skipping n 4 skipping n 8 Small: 10 Large: 8
Cnditinal Operatr (?:) Bentuk Umum: expr? expr1 : expr2; Jika expr bernilai benar, maka expr1 dieksekusi. Jika expr bernilai salah, maka expr2 dieksekusi.
(?: ) = if.. else statement z = ((x < y)? y : x) if (x<y){ z = y; else { z = x; val = ((x > -1)? ((x==0)? 10 : 100) : 1000) if (x > -1){ if(x==0) val = 10; else val = 100; else { val = 1000;
Latihan Bagaimanakan bentuk if..else dari statement cnditinal berikut: age > 17? printf("yu can vte. ) : printf("yu can t vte. ); val = ((y>0)? 10 : ((x==0)? 100 : 1000));
References http://www.mycplus.cm/tutrials/cprgramming-tutrials/lps/ http://www.tenuk.cm/mdule6a.html http://www.tenuk.cm/clabwrksheet/ labwrksheet7.html http://bytes.cm/serversidescripting/c+ +/tutrials/c++cnditinalstatements/ index.html