Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lecture 10: Reviews. Control Structures All C programs written in term of 3 control structures Sequence structures Programs executed sequentially by default.

Similar presentations


Presentation on theme: "Lecture 10: Reviews. Control Structures All C programs written in term of 3 control structures Sequence structures Programs executed sequentially by default."— Presentation transcript:

1 Lecture 10: Reviews

2 Control Structures All C programs written in term of 3 control structures Sequence structures Programs executed sequentially by default Selection structures Used to choose among alternative courses of action Three types: if, if … else, and switch Repetition structures Used to repeat an action when some condition remains true. Three types: while, do … while and for

3 Sequence Structures Normally, statements are executed one after the other in the order written

4 Selection Structures - if if statement if (condition) { statement(s); } Only performs an action if the condition is true. Example: Flowchart if ( grade >= 60 ) { printf( “Passed\n” ); } if ( grade >= 60 ) { printf( “Passed\n” ); printf( “Congratulations!\n” ); } if ( grade >= 60 ) printf( “Passed\n” ); printf( “Congratulations!\n” );

5 Selection Structures - if…else If…else statement if (condition) { statement(s); } else { statement(s); } Specifies an action to be performed both when the condition is true and when it is false. Flowchart

6 Selection Structures - if…else Nested if…else statements Test for multiple cases by placing if…else selection statements inside if…else selection statement Once condition is met, rest of statements skipped if ( score >= 90 ) { printf( "The grade is 'A'.\n" ); } else if ( score >= 80 ) { printf( "The grade is 'B'.\n" ); } else if ( score >= 70 ) { printf( "The grade is 'C'.\n" ); } else if ( score >= 60 ) { printf( "The grade is 'D'.\n" ); } else { printf( "The grade is 'F'.\n" ); } >= 90:A 80 ~ 89:B 70 ~ 79:C 60 ~ 69:D < 60:F

7 Selection Structures - if…else if…else statements in sequence if ( score >= 90 ) { printf( "The grade is 'A'.\n" ); } else if ( score >= 80 ) { printf( "The grade is 'B'.\n" ); } if ( score >= 70 ) { printf( "The grade is 'C'.\n" ); } else if ( score >= 60 ) { printf( "The grade is 'D'.\n" ); } else { printf( "The grade is 'F'.\n" ); }

8 Selection Structures - switch switch statement Useful when a variable or expression is tested for all the values it can assume and different actions are taken. Format Series of case labels and an optional default case switch ( controlling expression ) { case value1: actions case value2: actions default: actions } The switch statement can be used only for testing a constant integral expression. switch (grade) { case >= 90: … case >= 80: … ….. } default case occurs if none of the case s are matched

9 Selection Structures - switch switch statement with break statements switch ( controlling expression ) { case value1: actions; break; case value2: actions; break; default: actions; break; } It causes program control to continue with the first statement after the switch statement.

10 Selection Structures - switch switch statement with break statements Example switch ( n ) { case 1: printf( “The number is 1\n”); break; case 2: printf( “The number is 2\n”); break; case 3: printf( “The number is 3\n”); break; default: printf( “The number is not 1, 2, or 3\n”); break; }

11 Selection Structures - switch switch statement with break statements Example switch ( n ) { case 1: printf( “The number is 1\n”); case 2: printf( “The number is 2\n”); break; case 3: printf( “The number is 3\n”); break; default: printf( “The number is not 1, 2, or 3\n”); break; }

12 Repetition Structures Two types of repetition structures Counter-controlled repetition Definite repetition: know how many times loop will execute Control variable used to count repetitions Sentinel-controlled repetition Indefinite repetition Used when number of repetitions not known Sentinel value indicates "end of data entry” Loop ends when user inputs the sentinel value

13 Repetition Structures Common error: Infinite loops are caused when the loop-continuation condition in a while, for or do...while statement never becomes false. To prevent: a) Make sure there is not a semicolon immediately after the header of a while statement. b) In a counter-controlled loop, make sure the control variable is incremented (or decremented) in the loop. c) In a sentinel-controlled loop, make sure the sentinel value is eventually input. j = 1; while (j <= 10); { printf(“%d\n”, j); j++; } j = 1; while (j <= 10) { printf(“%d\n”, j); } j = 1; while (j <= 10) { printf(“%d\n”, --j); j++; } j = 1; while (j <= 10) { printf(“%d\n”, j); j--; }

14 Repetition Structures - while while loop repeated until condition becomes false Counter-controlled repetition Sentinel-controlled repetition Format while ( condition ) { statement(s); } Flowchart condition while body

15 Repetition Structures - while Counter-controlled while loop Loop repeated until counter reaches a certain value Count the number of iterations j = 1; while (j <= 10) { printf(“Good Luck\n”); j++; } j = 0; while (j < 10) { printf(“Good Luck\n”); j++; } j = 0; while (j <= 10) { printf(“Good Luck\n”); j++; } j = 1; while (j <= 10) { printf(“Good Luck\n”); j += 2; } j = -1; while (j <= 10) { printf(“Good Luck\n”); j += 3; }

16 Repetition Structures - while Sentinel-controlled while loop Loop repeated until user inputs the sentinel value Sentinel value chosen so it cannot be confused with a regular input Examples Simple calculator ATM menu interface Prime number

17 Repetition Structures - do…while Similar to the while statement Condition for repetition only tested after the body of the loop is performed. All actions are performed at least once. Format do { statement(s); } while ( condition ); Flowcharting the do…while repetition statement

18 Repetition Structures - do…while Examples counter = 1; do { printf( “%d\n”, counter); counter ++; } while (counter <= 10); counter = 1; while (counter <= 10) { printf( “%d\n”, counter); counter ++; } counter = 12; do { printf( “%d\n”, counter); counter ++; } while (counter <= 10); counter = 12; while (counter <= 10) { printf( “%d\n”, counter); counter ++; }

19 Repetition Structures - for Can loop a known number of times Format when using for loops for ( initialization; loopContinuationTest; increment ) { statement(s); } initialization; while ( loopContinuationTest ) { statement(s); increment; } for (j = 1; j <= 10; j++) { printf(“%d\n”, j); } for (j = 10; j > 0; j--) { printf(“%d\n”, j); } for (j = 10; j > 0; j -= 2) { printf(“%d\n”, j); } incrementdecrement Increasing/decreasing other than 1

20 Nested Control Loops Nested while loops i = 1; while (i < 5) { j = 1; while (j < 5) { printf(“%d * %d = %d\n”, i, j, i*j); j++; } i++; } Nested for loops for (i = 1; i < 5; i++) { for (j = 1; j < 5; j++) { printf(“%d * %d = %d\n”, i, j, i*j); } i j

21 Nested Control Loops Nested while loops i = 1; while (i < 5) { j = 1; while ( j <= i ) { printf(“%d * %d = %d\n”, i, j, i*j); j++; } i++; } Nested for loops for (i = 1; i < 5; i++) { for (j = 1; j <= i; j++) { printf(“%d * %d = %d\n”, i, j, i*j); } i j j <= i

22 Nested Control Loops Nested while loops i = 1; while (i < 5) { j = 1; while ( j < 5 ) { printf(“%d * %d = %d\n”, i, j, i*j); j++; } i += 2; } Nested for loops for (i = 1; i < 5; i += 2) { for (j = 1; j < 5; j++) { printf(“%d * %d = %d\n”, i, j, i*j); } i j

23 Operators Arithmetic operators +, -, *, /, % Assignment operator = Arithmetic assignment operators +=, -=, *=, /=, %= Increment / decrement operators ++, -- Relational operators, >= Equality operators ==, != Logical operators &&, ||, !

24 == and = Swapping both operators does not ordinarily cause syntax errors. int payCode = 0; payCode = 4; if (payCode == 4) printf(“You get a bonus!\n”); int payCode = 0; payCode == 4; if (payCode == 4) printf(“You get a bonus!\n”); int payCode = 0; payCode = 3; if (payCode == 4) printf(“You get a bonus!\n”); int payCode = 0; payCode = 3; if (payCode = 4) printf(“You get a bonus!\n”);

25 Pre-increment and Post-increment Pre-increment/Pre-decrement Operator is used before the variable (++c or --c) Variable is changed before the expression it is in is evaluated Post-increment/Post-decrement Operator is used after the variable (c++ or c--) Expression executes before the variable is changed. c = 5; printf(“%d\n”, ++c); printf(“%d\n”, c); c = 5; printf(“%d\n”, c++); printf(“%d\n”, c); c = 5; ++c; printf(“%d\n”, c); c = 5; c++; printf(“%d\n”, c);

26 Logical Operators Logical AND - && Logical OR - || Logical NOT - ! x y x y

27 Logical Operators Examples int F = 0, T = 1; int x, y; x = !240; x = !0; x = (F && 1) || (T || F); y = (T || !F) && (!F && T); x = !(T && F || 1) if (grade >= 80 && grade <90) printf(“B\n”); while ((x > 0) || (y > 10)) { x--; y--; }

28 scanf and printf scanf() Used to obtain a value (values) from the user using standard input (usually keyboard). Examples int num, j; float x; scanf( “%d”, &num); scanf( “%d%d”, &num, &j); scanf( “%f”, &x); scanf( “%d%d%f”, &num, &j, &x); scanf( “%d”, num); scanf( “%d%d”, num);

29 scanf and printf printf() int num = 3, j = 2; float x = 3.0; printf( “Good Luck!\n”); /* prints a string */ printf( “num = %d\n”, num); /* prints the value of a variable */ printf( “%d + %d = %d\n”, num, j, num+j); /* prints the value of an expression */ printf( “%c\n”, ‘b’); /* prints the character ‘b’ */ j = ‘a’; printf( “%c\n”, j); /* prints the character ‘a’ */ printf( “x = %f\n”, x); /* prints a floating-point number */ printf( “x = %.2f\n”, x ); /* prints result with 2 digits after decimal point */


Download ppt "Lecture 10: Reviews. Control Structures All C programs written in term of 3 control structures Sequence structures Programs executed sequentially by default."

Similar presentations


Ads by Google