Tài liệu Bài giảng Chapter 13 Control Structures: Chapter 13Control StructuresControl StructuresConditionalmaking a decision about which code to execute,based on evaluated expressionifif-elseswitchIterationexecuting code multiple times,ending based on evaluated expressionwhilefordo-while2Ifif (condition) action;conditionactionTFCondition is a C expression,which evaluates to TRUE (non-zero) or FALSE (zero).Action is a C statement,which may be simple or compound (a block).3Example If Statementsif (x 3) z = z / 2; else z = z * 2;if (x != 10) { if (y > 3) z = z / 2; else z = z * 2;}is the same as...if (x != 10) { if (y > 3) z = z / 2;}else z = z * 2;is NOT the same as...10Chaining If’s and Else’sif (month == 4 || month == 6 || month == 9 || month == 11) printf(“Month has 30 days.\n”);else if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) printf(“Month has 31 days.\n”);else if (month == 2) printf(“Month has 28 or 29 days.\n”);else printf(“Don’t know that mon...
43 trang |
Chia sẻ: honghanh66 | Lượt xem: 845 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Bài giảng Chapter 13 Control Structures, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Chapter 13Control StructuresControl StructuresConditionalmaking a decision about which code to execute,based on evaluated expressionifif-elseswitchIterationexecuting code multiple times,ending based on evaluated expressionwhilefordo-while2Ifif (condition) action;conditionactionTFCondition is a C expression,which evaluates to TRUE (non-zero) or FALSE (zero).Action is a C statement,which may be simple or compound (a block).3Example If Statementsif (x 3) z = z / 2; else z = z * 2;if (x != 10) { if (y > 3) z = z / 2; else z = z * 2;}is the same as...if (x != 10) { if (y > 3) z = z / 2;}else z = z * 2;is NOT the same as...10Chaining If’s and Else’sif (month == 4 || month == 6 || month == 9 || month == 11) printf(“Month has 30 days.\n”);else if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) printf(“Month has 31 days.\n”);else if (month == 2) printf(“Month has 28 or 29 days.\n”);else printf(“Don’t know that month.\n”);11Whilewhile (test) loop_body;testloop_bodyTFExecutes loop body as long as test evaluates to TRUE (non-zero).Note: Test is evaluated before executing loop body.12Generating Code for Whilex = 0;while (x ... ADD R0, R0, #1 ; incr x STR R0, R5, #0 JMP LOOP ; test againDONE ; next statement13Infinite LoopsThe following loop will never terminate:x = 0;while (x ... ; re-init ADD R0, R0, #1 ; incr i STR R0, R5, #0 JMP LOOP ; test againDONE ; next statementThis is the sameas the while example!16Example For Loops/* -- what is the output of this loop? -- */for (i = 0; i main() { double pi = 0.0; int numOfTerms, count; printf("Number of terms (must be 1 or larger) : "); scanf("%d", &numOfTerms); for (count=0; count 0divisor =divisor + 1FT31Primes: Using a Flag VariableTo keep track of whether number was divisible,we use a "flag" variable.Set prime = TRUE, assuming that this number is prime.If any divisor divides number evenly,set prime = FALSE.Once it is set to FALSE, it stays FALSE.After all divisors are checked, number is prime ifthe flag variable is still TRUE.Use macros to help readability.#define TRUE 1#define FALSE 032Primes: Complete Code#include #define TRUE 1#define FALSE 0main () { int num, divisor, prime; /* start with 2 and go up to 100 */ for (num = 2; num main() { char key; /* input character from user */ int match = 0; /* keep track of characters matched */ int count = 0; /* number of substring matches */ /* Read character until newline is typed */ while ((key = getchar()) != '\n') { /* Action depends on number of matches so far */ switch (match) { case 0: /* starting - no matches yet */ if (key == 't') match = 1; break;39Substring: Code (Part 2) case 1: /* 't' has been matched */ if (key == 'h') match = 2; else if (key == 't') match = 1; else match = 0; break;40Substring: Code (Part 3) case 2: /* 'th' has been matched */ if (key == 'e') { count++; /* increment count */ match = 0; /* go to starting point */ } else if (key == 't') { match = 1; else match = 0; break; } } printf("Number of matches = %d\n", count);}41Break and Continuebreak;used only in switch statement or iteration statementpasses control out of the “smallest” (loop or switch) statement containing it to the statement immediately followingusually used to exit a loop before terminating condition occurs(or to exit switch statement when case is done)continue;used only in iteration statementterminates the execution of the loop body for this iterationloop expression is evaluated to see whether anotheriteration should be performedif for loop, also executes the re-initializer42ExampleWhat does the following loop do?for (i = 0; i <= 20; i++) { if (i%2 == 0) continue; printf("%d ", i);}What would be an easier way to write this?What happens if break instead of continue?43
Các file đính kèm theo tài liệu này:
- pattpatelch13_2267.ppt