control structures in c risanuri hidayat, ir., m.sc
TRANSCRIPT
![Page 1: Control Structures in C Risanuri Hidayat, Ir., M.Sc](https://reader035.vdocuments.mx/reader035/viewer/2022062407/56649c7b5503460f9492e98d/html5/thumbnails/1.jpg)
Control Structures in CControl Structures in C
Risanuri Hidayat, Ir., M.Sc.
![Page 2: Control Structures in C Risanuri Hidayat, Ir., M.Sc](https://reader035.vdocuments.mx/reader035/viewer/2022062407/56649c7b5503460f9492e98d/html5/thumbnails/2.jpg)
ConditionConditionOperator Meaning Example
== Equal to count == 10
!= Not equal to flag != DONE
< Less than a < b
<= Less than or equal to <= LIMIT
> Greater than pointer > end_of_list
>= Greater than or equal to lap >= start
![Page 3: Control Structures in C Risanuri Hidayat, Ir., M.Sc](https://reader035.vdocuments.mx/reader035/viewer/2022062407/56649c7b5503460f9492e98d/html5/thumbnails/3.jpg)
Control Structures in CControl Structures in C
These include – ifelse,– while, – do-while, – for, and a selection statement called– switch.
![Page 4: Control Structures in C Risanuri Hidayat, Ir., M.Sc](https://reader035.vdocuments.mx/reader035/viewer/2022062407/56649c7b5503460f9492e98d/html5/thumbnails/4.jpg)
if-elseif-else
The if-else statement can exist in two forms: with or without the else. The two forms are:
if(expression)statement
orif(expression)
statement1else
statement2
![Page 5: Control Structures in C Risanuri Hidayat, Ir., M.Sc](https://reader035.vdocuments.mx/reader035/viewer/2022062407/56649c7b5503460f9492e98d/html5/thumbnails/5.jpg)
if-elseif-else
Ifif (condition)
statement1;
else
statement2;
int a, b;
// ...
if(a < b) a = 0;
else b = 0;
![Page 6: Control Structures in C Risanuri Hidayat, Ir., M.Sc](https://reader035.vdocuments.mx/reader035/viewer/2022062407/56649c7b5503460f9492e98d/html5/thumbnails/6.jpg)
Nested ifNested if
nested if adalah statement if yang targetnya adalahjuga if atau else.
if (i == 10) {
if (j < 20) a = b;
if (k > 100) c = d; // this if is
else a = c; // associated with this else
}
else a = d; // this else refers to if(i == 10)
![Page 7: Control Structures in C Risanuri Hidayat, Ir., M.Sc](https://reader035.vdocuments.mx/reader035/viewer/2022062407/56649c7b5503460f9492e98d/html5/thumbnails/7.jpg)
if-else-if Ladderif-else-if Ladder
Bentuknya:
if(condition)statement;
else if(condition)statement;
else if(condition)statement;...elsestatement;
![Page 8: Control Structures in C Risanuri Hidayat, Ir., M.Sc](https://reader035.vdocuments.mx/reader035/viewer/2022062407/56649c7b5503460f9492e98d/html5/thumbnails/8.jpg)
if-else-if Ladderif-else-if Ladder
// Demonstrate if-else-if statements (IfElse.c).#include <stdio.h>main () {
int bulan = 4; // Aprilchar season[10];if(bulan == 12 || bulan == 1 || bulan == 2)
strcpy(season,"Salak");else if(bulan == 3 || bulan == 4 || bulan == 5) strcpy(season,"Durian"); else if(bulan == 6 || bulan == 7 || bulan == 8)
strcpy(season,"Mangga"); else if(bulan == 9 || bulan == 10 || bulan == 11)
strcpy(season,"Jeruk");else strcpy(season,"Mbuh");
printf("April adalah musim %s\n ",season);}
![Page 9: Control Structures in C Risanuri Hidayat, Ir., M.Sc](https://reader035.vdocuments.mx/reader035/viewer/2022062407/56649c7b5503460f9492e98d/html5/thumbnails/9.jpg)
switchswitch switch merupakan statement percabangan dengan banyak
cabang. Bentuknya seperti berikut:
switch (expression) {case value1:
// statement sequencebreak;
case value2:// statement sequencebreak;
.
.
.case valueN:
// statement sequencebreak;
default:// default statement sequence
}
![Page 10: Control Structures in C Risanuri Hidayat, Ir., M.Sc](https://reader035.vdocuments.mx/reader035/viewer/2022062407/56649c7b5503460f9492e98d/html5/thumbnails/10.jpg)
switchswitch expression harus bertype byte, short, int, or char;
// A simple example of the switch(switch.c)#include <stdio.h>main() { int i; for(i=0; i<6; i++)
switch(i) { case 0:
printf("i is zero.\n");break;
case 1:printf("i is one.\n");break;
case 2:printf("i is two.\n");break;
case 3:printf("i is three.\n");break;
default:printf("i is greater than 3.\n");
} // switch} // main
![Page 11: Control Structures in C Risanuri Hidayat, Ir., M.Sc](https://reader035.vdocuments.mx/reader035/viewer/2022062407/56649c7b5503460f9492e98d/html5/thumbnails/11.jpg)
Nested switchNested switch Kita dapat juga membuat statement switch di dalam switch yang
lain
switch(count) {case 1:
switch(target) { // nested switch case 0:
printf("target is zero");break;
case 1: // no conflicts with outer switchprintf("target is one");break;
} // switch(target)break;
case 2: // ...
![Page 12: Control Structures in C Risanuri Hidayat, Ir., M.Sc](https://reader035.vdocuments.mx/reader035/viewer/2022062407/56649c7b5503460f9492e98d/html5/thumbnails/12.jpg)
IterationIteration
while while loop merupakan dasar looping di C.
While akan mengulang statement jika kondisi yang disyaratkan benar. Bentuk statement while adalah:
while(condition) {// body of loop
}
![Page 13: Control Structures in C Risanuri Hidayat, Ir., M.Sc](https://reader035.vdocuments.mx/reader035/viewer/2022062407/56649c7b5503460f9492e98d/html5/thumbnails/13.jpg)
whilewhile
// Demonstrate the while loop (while.c).#include <stdio.h>
main() {int n = 10;while(n > 0) {
printf("tick %d \n",n);n--;
} // while} // main
![Page 14: Control Structures in C Risanuri Hidayat, Ir., M.Sc](https://reader035.vdocuments.mx/reader035/viewer/2022062407/56649c7b5503460f9492e98d/html5/thumbnails/14.jpg)
do-whiledo-while
Sering kali dalam program kita membuat instruksi terlebih dahulu baru kemudian di-test hasilnya. Hal ini juga sering terjadi dalam looping. C mm-fasilitasi hal ini dengan do-while.
Bentuknya sebagai berikut:
do {// body of loop
} while (condition);
![Page 15: Control Structures in C Risanuri Hidayat, Ir., M.Sc](https://reader035.vdocuments.mx/reader035/viewer/2022062407/56649c7b5503460f9492e98d/html5/thumbnails/15.jpg)
do-whiledo-while
// Demonstrate the do-while loop (dowhile.c).#include <stdio.h>
main() {int n = 10;do { printf("tick %d \n",n); n--;} while(n > 0);
} // main
![Page 16: Control Structures in C Risanuri Hidayat, Ir., M.Sc](https://reader035.vdocuments.mx/reader035/viewer/2022062407/56649c7b5503460f9492e98d/html5/thumbnails/16.jpg)
forfor
For merupakan statement loop yang paling sering digunakan dalam berbagai bahasa, termasuk C.
Berikut ini bentuk umumnya:
for(initialization; condition; iteration) {// body
}
![Page 17: Control Structures in C Risanuri Hidayat, Ir., M.Sc](https://reader035.vdocuments.mx/reader035/viewer/2022062407/56649c7b5503460f9492e98d/html5/thumbnails/17.jpg)
forfor
// Demonstrate the for loop (loop.c).
#include <stdio.h>
main() {
int n;
for(n=10; n>0; n--)
printf("tick %d \n",n);
}
![Page 18: Control Structures in C Risanuri Hidayat, Ir., M.Sc](https://reader035.vdocuments.mx/reader035/viewer/2022062407/56649c7b5503460f9492e98d/html5/thumbnails/18.jpg)
forfor
// Using the comma (comma.c)#include <stdio.h>
main() {int a, b;for(a=1, b=4; a<b; a++, b--) { printf("a = %d \n", a); printf("b = %d \n", b);}
}
![Page 19: Control Structures in C Risanuri Hidayat, Ir., M.Sc](https://reader035.vdocuments.mx/reader035/viewer/2022062407/56649c7b5503460f9492e98d/html5/thumbnails/19.jpg)
Nested LoopsNested Loops Like all other programming languages, C allows loops to be
nested. That is, one loop may be inside another. For example, here is a program that nests for loops:
// Loops may be nested (nestedfor.c).#include <stdio.h>main() {
int i, j;for(i=0; i<10; i++) { for(j=i; j<10; j++)
printf("."); printf("\n");
}}
![Page 20: Control Structures in C Risanuri Hidayat, Ir., M.Sc](https://reader035.vdocuments.mx/reader035/viewer/2022062407/56649c7b5503460f9492e98d/html5/thumbnails/20.jpg)
JumpJump
C supports four jump statements: • break, • continue, • return• goto.
These statements transfer control to another part of your program.
![Page 21: Control Structures in C Risanuri Hidayat, Ir., M.Sc](https://reader035.vdocuments.mx/reader035/viewer/2022062407/56649c7b5503460f9492e98d/html5/thumbnails/21.jpg)
breakbreak
In C, the break statement has two uses. – First, as you have seen, it terminates a
statement sequence in a switch statement.
– Second, it can be used to exit a loop.
![Page 22: Control Structures in C Risanuri Hidayat, Ir., M.Sc](https://reader035.vdocuments.mx/reader035/viewer/2022062407/56649c7b5503460f9492e98d/html5/thumbnails/22.jpg)
breakbreak
// Using break to exit a loop (break.c).
#include <stdio.h>
main() {
int i;
for(i=0; i<100; i++) {
if(i == 10) break; // terminate loop if i is 10
printf("i: %d \n", i);
}
printf("Loop complete.");
}
![Page 23: Control Structures in C Risanuri Hidayat, Ir., M.Sc](https://reader035.vdocuments.mx/reader035/viewer/2022062407/56649c7b5503460f9492e98d/html5/thumbnails/23.jpg)
breakbreak
// Using break to exit a while loop (break2.c).#include <stdio.h>
main() {int i = 0;while(i < 100) { if(i == 10) break; // terminate loop if i is 10 printf("i: %d \n", i); i++;}printf("Loop complete.");
}
![Page 24: Control Structures in C Risanuri Hidayat, Ir., M.Sc](https://reader035.vdocuments.mx/reader035/viewer/2022062407/56649c7b5503460f9492e98d/html5/thumbnails/24.jpg)
continuecontinue
continue go immediately to next iteration of loop
In while and do-while loops, a continue statement causes control to be transferred directly to the conditional expression that controls the loop.
In a for loop, control goes first to the iteration portion of the for statement and then to the conditional expression.
![Page 25: Control Structures in C Risanuri Hidayat, Ir., M.Sc](https://reader035.vdocuments.mx/reader035/viewer/2022062407/56649c7b5503460f9492e98d/html5/thumbnails/25.jpg)
continuecontinue
// Demonstrate continue (continue.c).#include <stdio.h>
main() { int i;
for(i=0; i<10; i++) {printf("%d ", i);if (i%2 == 0) continue;printf("\n");
}}
![Page 26: Control Structures in C Risanuri Hidayat, Ir., M.Sc](https://reader035.vdocuments.mx/reader035/viewer/2022062407/56649c7b5503460f9492e98d/html5/thumbnails/26.jpg)
returnreturn
The return statement is used to explicitly return from a method. That is, it causes program control to transfer back to the caller of the method.
The following example illustrates this point. Here, return causes execution to return to the C, since it is the run-time system that calls main( ).
![Page 27: Control Structures in C Risanuri Hidayat, Ir., M.Sc](https://reader035.vdocuments.mx/reader035/viewer/2022062407/56649c7b5503460f9492e98d/html5/thumbnails/27.jpg)
returnreturn
// Demonstrate return (return.c).
#include <stdio.h>
main() {
int t = 1;
printf("Before the return.");
if(t==1) return; // return to caller
printf("This won't execute.");
}
![Page 28: Control Structures in C Risanuri Hidayat, Ir., M.Sc](https://reader035.vdocuments.mx/reader035/viewer/2022062407/56649c7b5503460f9492e98d/html5/thumbnails/28.jpg)
gotogoto
It is possible to jump to any statement within the same function using goto.
A label is used to mark the destination of the jump.
goto label1;::label1:
![Page 29: Control Structures in C Risanuri Hidayat, Ir., M.Sc](https://reader035.vdocuments.mx/reader035/viewer/2022062407/56649c7b5503460f9492e98d/html5/thumbnails/29.jpg)
gotogoto
// Using continue with a label (goto.c).#include <stdio.h>
main() { int i,j;
for (i=0; i<10; i++) {for(j=0; j<10; j++) { if(j > i) {
printf("\n");goto outer;
} printf(" %d", (i * j));}
outer: printf(".. outer ..\n");}
}