SlideShare a Scribd company logo
Chapter 5 – Control Structures: Part 2 Outline 5.1  Introduction 5.2  Essentials of Counter-Controlled Repetition 5.3  for  Repetition Structure 5.4  Examples Using the  for  Structure 5.5  switch  Multiple-Selection Structure 5.6  do/while  Repetition Structure 5.7  Statements  break  and  continue 5.8  Logical and Conditional Operators 5.9  Structured-Programming Summary
5.2  Essentials of Counter Controlled Repetition Counter controlled repetition Control variable The variable used to determine if the loop continues Initial value of the control variable Incrementing/decrementing of the variable The condition When the looping should continue
WhileCounter.cs Program Output 1  // Fig. 5.1: WhileCounter.cs 2  // Counter-controlled repetition. 3  4  using  System; 5  6  class  WhileCounter 7  { 8  static   void  Main(  string [] args ) 9  { 10   int  counter =  1 ;  // initialization 11  12   while  ( counter <=  5  )  // repetition condition 13  { 14  Console.WriteLine( counter ); 15   counter++;  // increment 16  17  }  // end while 18  19  }  // end method Main 20  21  }  // end class WhileCounter 1 2 3 4 5  This is where the counter variable is initialized.  It is set to 1. The loop will continue until counter is greater than five (it will stop once it gets to six) The counter is incremented and 1 is added to it
5.3  for  Repetition Structure The  for  repetition structure Syntax:  for  (Expression1, Expression2, Expression3) Expression1 = names the control variable Can contain several variables Expression2 = loop-continuation condition Expression3 = incrementing/decrementing If Expression1 has several variables, Expression3 must have several variables accordingly ++counter and counter++ are equivalent Variable scope Expression1 can only be used in the body of the  for  loop When the loop ends the variable expires
5.3  for  Repetition Structure Fig. 5.3 Components of a typical  for  header.  for (  int counter = 1; counter <= 5; counter++ ) Initial value of control variable Increment of control variable Control variable  name Final value of control variable for keyword Loop-continuation condition
5.3  for  Repetition Structure counter++ Establish  initial value  of control variable.  Determine if  final value  of control variable has been reached. counter <= 10 Console.WriteLine ( counter * 10 ); true false int  counter = 1 Body of loop (this may be multiple statements) Increment  the control variable. Fig. 5.4 Flowcharting a typical  for  repetition structure.
ForCounter.cs Program Output 1  // Fig. 5.2: ForCounter.cs 2  // Counter-controlled repetition with the for structure. 3  4  using  System; 5  6  class  ForCounter 7  { 8  static   void  Main(  string [] args ) 9  { 10  // initialization, repetition condition and incrementing 11  // are all included in the for structure 12   for  (  int  counter =  1 ; counter <=  5 ; counter++ ) 13  Console.WriteLine( counter ); 14  } 15  } 1 2 3 4 5   This is where the counter variable is initialized.  It is set to 1. The loop will continue until counter is greater than five (it will stop once it gets to six) The counter is incremented (1 is added to it)
5.4  Examples Using the  for  Structure Increment/Decrement When incrementing In most cases < or <= is used When decrementing In most cases > or >= is used Message boxes Buttons OK OKCancel YesNo AbortRetryIgnore YesNoCancel RetryCancel
5.4  Examples Using the  for  Structure Massages boxes Icons Exclamation Question Error Information Formatting ( variable  :  format ) Table 5.9 lists some formatting codes
Sum.cs Program Output 1  // Fig. 5.5: Sum.cs 2  // Summation with the for structure. 3  4  using  System; 5  using  System.Windows.Forms; 6  7  class  Sum 8  { 9  static   void  Main(  string [] args )  10  { 11  int  sum =  0 ; 12  13   for  (  int  number =  2 ; number <=  100 ; number +=  2  ) 14  sum += number; 15  16   MessageBox.Show(  &quot;The sum is &quot;  + sum,  17   &quot;Sum Even Integers from 2 to 100&quot; , 18   MessageBoxButtons. OK , 19   MessageBoxIcon. Information  ); 20  21  }  // end method Main 22  23  }  // end class Sum Argument 4:  MessageBox   Icon (Optional) Argument 3:  OK  dialog button. (Optional) Argument 2: Title bar string (Optional) Argument 1: Message to display Displays a message box with an  OK  button Has the message box contain an information icon The counter. It is initialized to 2 Once the number is greater than 100 the loop breaks Increments number by 2 every time the loop starts over The caption of the message box The title of the message box
5.4  Examples Using the  for  Structure
5.4  Examples Using the  for  Structure
Interest.cs 1  // Fig. 5.8: Interest.cs 2  // Calculating compound interest. 3  4  using  System; 5  using  System.Windows.Forms; 6  7  class  Interest 8  { 9  static   void  Main(  string [] args ) 10  { 11  decimal  amount, principal = (  decimal  )  1000.00 ;  12  double  rate =  .05 ; 13  string  output; 14  15  output =  &quot;Year\tAmount on deposit\n&quot; ; 16  17   for  (  int  year =  1 ; year <=  10 ; year++ ) 18  { 19  amount = principal * 20  (  decimal  ) Math.Pow(  1.0  + rate, year ); 21  22   output += year +  &quot;\t&quot;  +  23   String.Format(  &quot;{0:C}&quot; , amount ) +  &quot;\n&quot; ; 24  } 25  26   MessageBox.Show( output,  &quot;Compound Interest&quot; ,  27  MessageBoxButtons. OK , MessageBoxIcon. Information  ); 28  29  }  // end method Main 30  31  }  // end class Interest Creates a message box that displays the output with a title of “Compound Interest” has an  OK  button and an information icon Loops through 10 times starting at 1 and ending at 10, adding 1 to the counter (year) each time Insert a  Tab Formats amount to have a currency formatting ($0.00)
Interest.cs Program Output
5.4  Examples Using the  for  Structure
5.5  switch  Multiple-Selection Structure The  switch  statement Constant expressions String Integral Cases Case ‘ x ’ : Use of constant variable cases Empty cases The default case The  break  statement Exit the  switch  statement
SwitchTest.cs 1  // Fig. 5.10: SwitchTest.cs 2  // Counting letter grades. 3  4  using  System; 5  6  class  SwitchTest 7  { 8  static   void  Main(  string [] args ) 9  { 10  char  grade;  // one grade 11   int  aCount =  0 ,  // number of As 12  bCount =  0 ,  // number of Bs 13  cCount =  0 ,  // number of Cs 14  dCount =  0 ,  // number of Ds 15  fCount =  0 ;  // number of Fs 16  17   for  (  int  i =  1 ; i <=  10 ; i++ ) 18  { 19   Console.Write(  &quot;Enter a letter grade: &quot;  ); 20  grade = Char.Parse( Console.ReadLine() ); 21  22   switch  ( grade ) 23  { 24   case   'A' :  // grade is uppercase A 25  case   'a' :  // or lowercase a 26   ++aCount; 27   break ; 28  29  case   'B' :  // grade is uppercase B 30  case   'b' :  // or lowercase b 31   ++bCount; 32  break ; 33  Each of these variables acts as a counter so they are initialized to zero The start of the  switch  statement.  The grade variable is used as the data to be tested for each case. Prompt the user for a grade and store it into the grade variable case  ‘A’ is empty so it is the same as  case  ‘a’ Both cases add one to aCount The break statement is used to exit the switch statement and not perform the rest of the operations Both case ‘B’ and case ‘b’ add one to the bCount variable A  for  loop that initializes i to 1, loops 10 times and increments i by one each time
SwitchTest.cs 34   case   'C' :  // grade is uppercase C 35  case   'c' :  // or lowercase c 36  ++cCount; 37  break ; 38  39  case   'D' :  // grade is uppercase D 40  case   'd' :  // or lowercase d 41   ++dCount; 42  break ; 43  44  case   'F' :  // grade is uppercase F 45  case   'f' :  // or lowercase f 46   ++fCount; 47  break ; 48  49   default :  // processes all other characters 50  Console.WriteLine(  51  &quot;Incorrect letter grade entered.&quot;  + 52  &quot;\nGrade not added to totals.&quot;  ); 53  break ; 54  55  }  // end switch 56  57  }  // end for 58  59  Console.WriteLine(  60   &quot;\nTotals for each letter grade are:\nA: {0}&quot;  + 61  &quot;\nB: {1}\nC: {2}\nD: {3}\nF: {4}&quot; , aCount, bCount, 62  cCount, dCount, fCount ); 63  64  }  // end method Main 65  66  }  // end class SwitchTest Both cases add 1 to cCount If grade equals D or d add one to dCount Add one to fCount if grade equals F or f If non of the cases are equal to the value of grade then the  default  case is executed Display the results
SwitchTest.cs Program Output Enter a letter grade: a Enter a letter grade: A Enter a letter grade: c Enter a letter grade: F Enter a letter grade: z Incorrect letter grade entered. Grade not added to totals. Enter a letter grade: D Enter a letter grade: d Enter a letter grade: B Enter a letter grade: a Enter a letter grade: C   Totals for each letter grade are: A: 3 B: 1 C: 2 D: 2 F: 1
5.5  switch  Multiple-Selection Structure Fig. 5.11 Flowcharting the  switch  multiple-selection structure.   break; case : a case a action(s) true false . . . break; case b action(s) break; false false case : z case z action(s) break; default action(s) true true case : b
5.6  do/while  Repetition Structure The  while  loops vs. the  do/while  loops Using a  while  loop Condition is tested The the action is performed Loop could be skipped altogether Using a  do/while  loop Action is performed Then the loop condition is tested Loop must be run though once Always uses brackets ({) to prevent confusion
DoWhileLoop.cs Program Output 1  // Fig. 5.12: DoWhileLoop.cs 2  // The do/while repetition structure. 3  4  using  System; 5  6  class  DoWhileLoop 7  { 8  static   void  Main(  string [] args ) 9  { 10   int  counter =  1 ; 11  12  do   13  { 14   Console.WriteLine( counter ); 15   counter++; 16   }  while  ( counter <=  5  ); 17  18  }  // end method Main 19  20  }  // end class DoWhileLoop 1 2 3 4 5   The counter is initialized to one These actions are performed at least one  Continue looping as long as counter is less than 6 The incrementing task
5.6  do/while  Repetition Structure Fig. 5.13 Flowcharting the  do / while  repetition structure.   true false action(s) condition
5.7  Statements  break  and  continue Use Used to alter the flow of control The  break  statement Used to exit a loop early The  continue  statement Used to skip the rest of the statements and begin the loop at the first statement in the loop Programs can be completed without their usage
BreakTest.cs 1  // Fig. 5.14: BreakTest.cs 2  // Using the break statement in a for structure. 3  4  using  System; 5  using  System.Windows.Forms; 6  7  class  BreakTest 8  { 9  static   void  Main(  string [] args )  10  { 11  string  output =  &quot;&quot; ; 12  int  count; 13  14   for  ( count =  1 ; count <=  10 ; count++ ) 15  { 16  if  ( count ==  5  ) 17   break ;  // skip remaining code in loop  18  // if count == 5 19  20  output += count +  &quot; &quot; ; 21  22  }  // end for loop 23  24   output +=  &quot;\nBroke out of loop at count = &quot;  + count; 25  26   MessageBox.Show( output,  &quot;Demonstrating the break statement&quot; , 27  MessageBoxButtons. OK , MessageBoxIcon. Information  ); 28  29  }  // end method Main 30  31  }  // end class BreakTest Displays a message box the displays the output, has a title of “demonstrating the break statement,” uses an  OK  button, and displays an information icon A loop that starts at one, goes to ten, and increments by one If count = 5 then break out of the loop Display the last value that the counter was at before it broke
BreakTest.cs Program Output
ContinueTest.cs 1  // Fig. 5.15: ContinueTest.cs 2  // Using the continue statement in a for structure. 3  4  using  System; 5  using  System.Windows.Forms; 6  7  class  ContinueTest 8  { 9  static   void  Main(  string [] args )  10  { 11  string  output =  &quot;&quot; ; 12  13   for  (  int  count =  1 ; count <=  10 ; count++ ) 14  { 15   if  ( count ==  5  ) 16  continue ;  // skip remaining code in loop 17  // only if count == 5 18  19  output += count +  &quot; &quot; ; 20  } 21  22  output +=  &quot;\nUsed continue to skip printing 5&quot; ; 23  24   MessageBox.Show( output,  &quot;Using the continue statement&quot; , 25  MessageBoxButtons. OK , MessageBoxIcon. Information  ); 26  27  }  // end method Main 28  29  }  // end class ContinueTest A loop that starts at 1, goes to 10, and increments by 1 If count = 5 then continue looping causing the program to skip the rest of the loop Create a message box that displays the output, has the title “using the continue statement,” uses an  OK  button, and displays an information icon.
ContinueTest.cs Program Output
5.8  Logical and Conditional Operators Operators Logical AND (&) Conditional AND (&&) Logical OR (|) Conditional OR (||) Logical exclusive OR or XOR (^) Logical NOT (!) Can be avoided if desired by using other conditional operators Used to add multiple conditions to a statement
5.8  Logical and Conditional Operators
5.8  Logical and Conditional Operators
LogicalOperators.cs 1  // Fig. 5.20: LogicalOperators.cs 2  // Demonstrating the logical operators. 3  using  System; 4  5  class  LogicalOperators 6  { 7  // main entry point for application 8  static   void  Main(  string [] args ) 9  { 10  // testing the conditional AND operator (&&) 11   Console.WriteLine(  &quot;Conditional AND (&&)&quot;  + 12  &quot;\nfalse && false: &quot;  + (  false  &&  false  ) + 13  &quot;\nfalse && true:  &quot;  + (  false  &&  true  ) + 14  &quot;\ntrue && false:  &quot;  + (  true  &&  false  ) + 15   &quot;\ntrue && true:  &quot;  + (  true  &&  true  ) ); 16  17  // testing the conditional OR operator (||) 18   Console.WriteLine(  &quot;\n\nConditional OR (||)&quot;  + 19   &quot;\nfalse || false: &quot;  + (  false  ||  false  ) + 20  &quot;\nfalse || true:  &quot;  + (  false  ||  true  ) + 21  &quot;\ntrue || false:  &quot;  + (  true  ||  false  ) + 22  &quot;\ntrue || true:  &quot;  + (  true  ||  true  ) ); 23  24  // testing the logical AND operator (&) 25   Console.WriteLine(  &quot;\n\nLogical AND (&)&quot;  + 26  &quot;\nfalse & false: &quot;  + (  false  &  false  ) + 27  &quot;\nfalse & true:  &quot;  + (  false  &  true  ) + 28  &quot;\ntrue & false:  &quot;  + (  true  &  false  ) + 29   &quot;\ntrue & true:  &quot;  + (  true  &  true  ) ); 30  Only true if both inputs are true Only false if both inputs are false The result is only true if both are true Outputs a truth table for the conditional AND operator (&&) Outputs a truth table for the conditional OR operator (||) Outputs a truth table for the logical AND operator (&)
LogicalOperators.cs  Program Output 31  // testing the logical OR operator (|) 32   Console.WriteLine(  &quot;\n\nLogical OR (|)&quot;  + 33  &quot;\nfalse | false: &quot;  + (  false  |  false  ) + 34   &quot;\nfalse | true:  &quot;  + (  false  |  true  ) + 35  &quot;\ntrue | false:  &quot;  + (  true  |  false  ) + 36  &quot;\ntrue | true:  &quot;  + (  true  |  true  ) ); 37  38  // testing the logical exclusive OR operator (^) 39   Console.WriteLine(  &quot;\n\nLogical exclusive OR (^)&quot;  + 40   &quot;\nfalse ^ false: &quot;  + (  false  ^  false  ) + 41  &quot;\nfalse ^ true:  &quot;  + (  false  ^  true  ) + 42  &quot;\ntrue ^ false:  &quot;  + (  true  ^  false  ) + 43  &quot;\ntrue ^ true:  &quot;  + (  true  ^  true  ) ); 44  45  // testing the logical NOT operator (!) 46   Console.WriteLine(  &quot;\n\nLogical NOT (!)&quot;  + 47  &quot;\n!false: &quot;  + ( ! false  ) + 48   &quot;\n!true:  &quot;  + ( ! true  ) ); 49  } 50  } Conditional AND (&&) false && false: False false && true:  False true && false:  False true && true:  True Conditional OR (||) false || false: False false || true:  True true || false:  True true || true:  True Returns the opposite as the input Returns false when the two conditionals are the same If one is true the result is true Outputs a truth table for the logical OR operator (||) Outputs a truth table for the logical exclusive OR operator (||) Outputs a truth table for the logical NOT operator (!)
LogicalOperators.cs Program Output Logical AND (&) false & false: False false & true:  False true & false:  False true & true:  True     Logical OR (|) false | false: False false | true:  True true | false:  True true | true:  True     Logical exclusive OR (^) false ^ false: False false ^ true:  True true ^ false:  True true ^ true:  False     Logical NOT (!) !false: True !true:  False
5.9  Structured Programming Summary Control Structures Only one entrance Only one exit Building blocks to programming Allow nesting Makes code neater and easier to follow No overlapping structures The  goto  keyword
5.9  Structured Programming Summary 3 forms of control necessary Many ways to implement these controls Sequential (only 1 way) Straight forward programming Selection (3 ways) if  selection (one choice) if/else  selection (two choices) switch  statement (multiple choices) Repetition (4 ways) while  structure do/while  structure for  structure foreach  structure (chapter 7)
5.9  Structured Programming Summary
5.9  Structured Programming Summary Fig. 5.22 C#’s single-entry/single-exit sequence, selection and repetition structures. (part 1) Sequence . .
5.9  Structured Programming Summary Fig. 5.22 C#’s single-entry/single-exit sequence, selection and repetition structures. (part 2) Selection T F if  structure (single selection) else/if  structure (double selection) T F switch  structure (multiple selections) . . break break break break T T T F F F .
5.9  Structured Programming Summary Fig. 5.22 C#’s single-entry/single-exit sequence, selection and repetition structures. (part 3) Repetition T F while  structure T F do/while  structure F T for  structure/ foreach  structure
5.9  Structured Programming Summary
5.9  Structured Programming Summary Fig. 5.24 Simplest flowchart.
5.9  Structured Programming Summary . . . Rule 2 Rule 2 Rule 2 Fig. 5.25 Repeatedly applying rule 2 of Fig. 5.23 to the simplest flowchart.
5.9  Structured Programming Summary Fig. 5.26 Applying rule 3 of Fig. 5.23 to the simplest flowchart.   Rule 3 Rule 3
5.9  Structured Programming Summary Fig. 5.27 Stacked, nested and overlapped building blocks.   Stacked building blocks Overlapping building blocks (illegal in structured programs) Nested building blocks
5.9  Structured Programming Summary Fig. 5.28 Unstructured flowchart.

More Related Content

PPT
Csphtp1 10
PPT
Csphtp1 13
PPT
Csphtp1 15
PPT
Csphtp1 16
PPT
Csphtp1 08
PPT
Csphtp1 09
PPT
Csphtp1 06
PPTX
Python programming workshop session 2
Csphtp1 10
Csphtp1 13
Csphtp1 15
Csphtp1 16
Csphtp1 08
Csphtp1 09
Csphtp1 06
Python programming workshop session 2

What's hot (20)

PPTX
Iterative control structures, looping, types of loops, loop working
PPTX
Working of while loop
PPTX
Python programming workshop session 3
DOC
C lab-programs
PPT
Csphtp1 07
PPTX
PDF
C++ TUTORIAL 2
PDF
Programming with c language practical manual
PPTX
Simple c program
PPTX
Python workshop session 6
DOCX
programming for Calculator in java
DOCX
Lab. Programs in C
PPT
JavaScript Control Statements I
DOCX
UNIT-II CP DOC.docx
PPTX
USER DEFINE FUNCTIONS IN PYTHON
RTF
PDF
PPT
JavaScript Control Statements II
PPTX
FUNCTIONS IN PYTHON[RANDOM FUNCTION]
DOCX
C# labprograms
Iterative control structures, looping, types of loops, loop working
Working of while loop
Python programming workshop session 3
C lab-programs
Csphtp1 07
C++ TUTORIAL 2
Programming with c language practical manual
Simple c program
Python workshop session 6
programming for Calculator in java
Lab. Programs in C
JavaScript Control Statements I
UNIT-II CP DOC.docx
USER DEFINE FUNCTIONS IN PYTHON
JavaScript Control Statements II
FUNCTIONS IN PYTHON[RANDOM FUNCTION]
C# labprograms
Ad

Similar to Csphtp1 05 (20)

PPT
05 control structures 2
PPT
Chapter 3 Control structures.ppt
PPT
03b loops
PPT
Csphtp1 04
PPT
Lecture#5 Operators in C++
PPT
Control Statement.ppt
PPT
Java căn bản - Chapter6
PPTX
What is c
PPT
for loops in C++ and their functions and applicability
PPT
Csc1100 lecture05 ch05
PPTX
Control Structures in C
PPT
Control Structures: Part 2
PPT
Visula C# Programming Lecture 3
PPTX
control statements of clangauge (ii unit)
PPT
04 control structures 1
PDF
Principals of Programming in CModule -5.pdfModule_2_P2 (1).pdf
PPT
Ch3 repetition
PPT
C Sharp Jn (3)
PPT
Lecture 1
05 control structures 2
Chapter 3 Control structures.ppt
03b loops
Csphtp1 04
Lecture#5 Operators in C++
Control Statement.ppt
Java căn bản - Chapter6
What is c
for loops in C++ and their functions and applicability
Csc1100 lecture05 ch05
Control Structures in C
Control Structures: Part 2
Visula C# Programming Lecture 3
control statements of clangauge (ii unit)
04 control structures 1
Principals of Programming in CModule -5.pdfModule_2_P2 (1).pdf
Ch3 repetition
C Sharp Jn (3)
Lecture 1
Ad

More from HUST (16)

PPT
Csphtp1 23
PPT
Csphtp1 24
PPT
Csphtp1 24
PPT
Csphtp1 22
PPT
Csphtp1 21
PPT
Csphtp1 20
PPT
Csphtp1 19
PPT
Csphtp1 18
PPT
Csphtp1 17
PPT
Csphtp1 14
PPT
Csphtp1 12
PPT
Csphtp1 11
PPT
Csphtp1 03
PPT
Csphtp1 02
PPT
Csphtp1 01
PPT
Csphtp1 23
Csphtp1 23
Csphtp1 24
Csphtp1 24
Csphtp1 22
Csphtp1 21
Csphtp1 20
Csphtp1 19
Csphtp1 18
Csphtp1 17
Csphtp1 14
Csphtp1 12
Csphtp1 11
Csphtp1 03
Csphtp1 02
Csphtp1 01
Csphtp1 23

Recently uploaded (20)

PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
cloud_computing_Infrastucture_as_cloud_p
PPTX
TLE Review Electricity (Electricity).pptx
PDF
Hindi spoken digit analysis for native and non-native speakers
PPTX
OMC Textile Division Presentation 2021.pptx
PDF
Approach and Philosophy of On baking technology
PDF
WOOl fibre morphology and structure.pdf for textiles
PDF
Heart disease approach using modified random forest and particle swarm optimi...
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
August Patch Tuesday
PDF
Hybrid model detection and classification of lung cancer
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
A novel scalable deep ensemble learning framework for big data classification...
PDF
Getting Started with Data Integration: FME Form 101
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
DP Operators-handbook-extract for the Mautical Institute
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PDF
Zenith AI: Advanced Artificial Intelligence
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
cloud_computing_Infrastucture_as_cloud_p
TLE Review Electricity (Electricity).pptx
Hindi spoken digit analysis for native and non-native speakers
OMC Textile Division Presentation 2021.pptx
Approach and Philosophy of On baking technology
WOOl fibre morphology and structure.pdf for textiles
Heart disease approach using modified random forest and particle swarm optimi...
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
Univ-Connecticut-ChatGPT-Presentaion.pdf
August Patch Tuesday
Hybrid model detection and classification of lung cancer
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
A novel scalable deep ensemble learning framework for big data classification...
Getting Started with Data Integration: FME Form 101
Building Integrated photovoltaic BIPV_UPV.pdf
DP Operators-handbook-extract for the Mautical Institute
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
Zenith AI: Advanced Artificial Intelligence

Csphtp1 05

  • 1. Chapter 5 – Control Structures: Part 2 Outline 5.1 Introduction 5.2 Essentials of Counter-Controlled Repetition 5.3 for Repetition Structure 5.4 Examples Using the for Structure 5.5 switch Multiple-Selection Structure 5.6 do/while Repetition Structure 5.7 Statements break and continue 5.8 Logical and Conditional Operators 5.9 Structured-Programming Summary
  • 2. 5.2 Essentials of Counter Controlled Repetition Counter controlled repetition Control variable The variable used to determine if the loop continues Initial value of the control variable Incrementing/decrementing of the variable The condition When the looping should continue
  • 3. WhileCounter.cs Program Output 1 // Fig. 5.1: WhileCounter.cs 2 // Counter-controlled repetition. 3 4 using System; 5 6 class WhileCounter 7 { 8 static void Main( string [] args ) 9 { 10 int counter = 1 ; // initialization 11 12 while ( counter <= 5 ) // repetition condition 13 { 14 Console.WriteLine( counter ); 15 counter++; // increment 16 17 } // end while 18 19 } // end method Main 20 21 } // end class WhileCounter 1 2 3 4 5 This is where the counter variable is initialized. It is set to 1. The loop will continue until counter is greater than five (it will stop once it gets to six) The counter is incremented and 1 is added to it
  • 4. 5.3 for Repetition Structure The for repetition structure Syntax: for (Expression1, Expression2, Expression3) Expression1 = names the control variable Can contain several variables Expression2 = loop-continuation condition Expression3 = incrementing/decrementing If Expression1 has several variables, Expression3 must have several variables accordingly ++counter and counter++ are equivalent Variable scope Expression1 can only be used in the body of the for loop When the loop ends the variable expires
  • 5. 5.3 for Repetition Structure Fig. 5.3 Components of a typical for header. for ( int counter = 1; counter <= 5; counter++ ) Initial value of control variable Increment of control variable Control variable name Final value of control variable for keyword Loop-continuation condition
  • 6. 5.3 for Repetition Structure counter++ Establish initial value of control variable. Determine if final value of control variable has been reached. counter <= 10 Console.WriteLine ( counter * 10 ); true false int counter = 1 Body of loop (this may be multiple statements) Increment the control variable. Fig. 5.4 Flowcharting a typical for repetition structure.
  • 7. ForCounter.cs Program Output 1 // Fig. 5.2: ForCounter.cs 2 // Counter-controlled repetition with the for structure. 3 4 using System; 5 6 class ForCounter 7 { 8 static void Main( string [] args ) 9 { 10 // initialization, repetition condition and incrementing 11 // are all included in the for structure 12 for ( int counter = 1 ; counter <= 5 ; counter++ ) 13 Console.WriteLine( counter ); 14 } 15 } 1 2 3 4 5 This is where the counter variable is initialized. It is set to 1. The loop will continue until counter is greater than five (it will stop once it gets to six) The counter is incremented (1 is added to it)
  • 8. 5.4 Examples Using the for Structure Increment/Decrement When incrementing In most cases < or <= is used When decrementing In most cases > or >= is used Message boxes Buttons OK OKCancel YesNo AbortRetryIgnore YesNoCancel RetryCancel
  • 9. 5.4 Examples Using the for Structure Massages boxes Icons Exclamation Question Error Information Formatting ( variable : format ) Table 5.9 lists some formatting codes
  • 10. Sum.cs Program Output 1 // Fig. 5.5: Sum.cs 2 // Summation with the for structure. 3 4 using System; 5 using System.Windows.Forms; 6 7 class Sum 8 { 9 static void Main( string [] args ) 10 { 11 int sum = 0 ; 12 13 for ( int number = 2 ; number <= 100 ; number += 2 ) 14 sum += number; 15 16 MessageBox.Show( &quot;The sum is &quot; + sum, 17 &quot;Sum Even Integers from 2 to 100&quot; , 18 MessageBoxButtons. OK , 19 MessageBoxIcon. Information ); 20 21 } // end method Main 22 23 } // end class Sum Argument 4: MessageBox Icon (Optional) Argument 3: OK dialog button. (Optional) Argument 2: Title bar string (Optional) Argument 1: Message to display Displays a message box with an OK button Has the message box contain an information icon The counter. It is initialized to 2 Once the number is greater than 100 the loop breaks Increments number by 2 every time the loop starts over The caption of the message box The title of the message box
  • 11. 5.4 Examples Using the for Structure
  • 12. 5.4 Examples Using the for Structure
  • 13. Interest.cs 1 // Fig. 5.8: Interest.cs 2 // Calculating compound interest. 3 4 using System; 5 using System.Windows.Forms; 6 7 class Interest 8 { 9 static void Main( string [] args ) 10 { 11 decimal amount, principal = ( decimal ) 1000.00 ; 12 double rate = .05 ; 13 string output; 14 15 output = &quot;Year\tAmount on deposit\n&quot; ; 16 17 for ( int year = 1 ; year <= 10 ; year++ ) 18 { 19 amount = principal * 20 ( decimal ) Math.Pow( 1.0 + rate, year ); 21 22 output += year + &quot;\t&quot; + 23 String.Format( &quot;{0:C}&quot; , amount ) + &quot;\n&quot; ; 24 } 25 26 MessageBox.Show( output, &quot;Compound Interest&quot; , 27 MessageBoxButtons. OK , MessageBoxIcon. Information ); 28 29 } // end method Main 30 31 } // end class Interest Creates a message box that displays the output with a title of “Compound Interest” has an OK button and an information icon Loops through 10 times starting at 1 and ending at 10, adding 1 to the counter (year) each time Insert a Tab Formats amount to have a currency formatting ($0.00)
  • 15. 5.4 Examples Using the for Structure
  • 16. 5.5 switch Multiple-Selection Structure The switch statement Constant expressions String Integral Cases Case ‘ x ’ : Use of constant variable cases Empty cases The default case The break statement Exit the switch statement
  • 17. SwitchTest.cs 1 // Fig. 5.10: SwitchTest.cs 2 // Counting letter grades. 3 4 using System; 5 6 class SwitchTest 7 { 8 static void Main( string [] args ) 9 { 10 char grade; // one grade 11 int aCount = 0 , // number of As 12 bCount = 0 , // number of Bs 13 cCount = 0 , // number of Cs 14 dCount = 0 , // number of Ds 15 fCount = 0 ; // number of Fs 16 17 for ( int i = 1 ; i <= 10 ; i++ ) 18 { 19 Console.Write( &quot;Enter a letter grade: &quot; ); 20 grade = Char.Parse( Console.ReadLine() ); 21 22 switch ( grade ) 23 { 24 case 'A' : // grade is uppercase A 25 case 'a' : // or lowercase a 26 ++aCount; 27 break ; 28 29 case 'B' : // grade is uppercase B 30 case 'b' : // or lowercase b 31 ++bCount; 32 break ; 33 Each of these variables acts as a counter so they are initialized to zero The start of the switch statement. The grade variable is used as the data to be tested for each case. Prompt the user for a grade and store it into the grade variable case ‘A’ is empty so it is the same as case ‘a’ Both cases add one to aCount The break statement is used to exit the switch statement and not perform the rest of the operations Both case ‘B’ and case ‘b’ add one to the bCount variable A for loop that initializes i to 1, loops 10 times and increments i by one each time
  • 18. SwitchTest.cs 34 case 'C' : // grade is uppercase C 35 case 'c' : // or lowercase c 36 ++cCount; 37 break ; 38 39 case 'D' : // grade is uppercase D 40 case 'd' : // or lowercase d 41 ++dCount; 42 break ; 43 44 case 'F' : // grade is uppercase F 45 case 'f' : // or lowercase f 46 ++fCount; 47 break ; 48 49 default : // processes all other characters 50 Console.WriteLine( 51 &quot;Incorrect letter grade entered.&quot; + 52 &quot;\nGrade not added to totals.&quot; ); 53 break ; 54 55 } // end switch 56 57 } // end for 58 59 Console.WriteLine( 60 &quot;\nTotals for each letter grade are:\nA: {0}&quot; + 61 &quot;\nB: {1}\nC: {2}\nD: {3}\nF: {4}&quot; , aCount, bCount, 62 cCount, dCount, fCount ); 63 64 } // end method Main 65 66 } // end class SwitchTest Both cases add 1 to cCount If grade equals D or d add one to dCount Add one to fCount if grade equals F or f If non of the cases are equal to the value of grade then the default case is executed Display the results
  • 19. SwitchTest.cs Program Output Enter a letter grade: a Enter a letter grade: A Enter a letter grade: c Enter a letter grade: F Enter a letter grade: z Incorrect letter grade entered. Grade not added to totals. Enter a letter grade: D Enter a letter grade: d Enter a letter grade: B Enter a letter grade: a Enter a letter grade: C   Totals for each letter grade are: A: 3 B: 1 C: 2 D: 2 F: 1
  • 20. 5.5 switch Multiple-Selection Structure Fig. 5.11 Flowcharting the switch multiple-selection structure. break; case : a case a action(s) true false . . . break; case b action(s) break; false false case : z case z action(s) break; default action(s) true true case : b
  • 21. 5.6 do/while Repetition Structure The while loops vs. the do/while loops Using a while loop Condition is tested The the action is performed Loop could be skipped altogether Using a do/while loop Action is performed Then the loop condition is tested Loop must be run though once Always uses brackets ({) to prevent confusion
  • 22. DoWhileLoop.cs Program Output 1 // Fig. 5.12: DoWhileLoop.cs 2 // The do/while repetition structure. 3 4 using System; 5 6 class DoWhileLoop 7 { 8 static void Main( string [] args ) 9 { 10 int counter = 1 ; 11 12 do 13 { 14 Console.WriteLine( counter ); 15 counter++; 16 } while ( counter <= 5 ); 17 18 } // end method Main 19 20 } // end class DoWhileLoop 1 2 3 4 5 The counter is initialized to one These actions are performed at least one Continue looping as long as counter is less than 6 The incrementing task
  • 23. 5.6 do/while Repetition Structure Fig. 5.13 Flowcharting the do / while repetition structure. true false action(s) condition
  • 24. 5.7 Statements break and continue Use Used to alter the flow of control The break statement Used to exit a loop early The continue statement Used to skip the rest of the statements and begin the loop at the first statement in the loop Programs can be completed without their usage
  • 25. BreakTest.cs 1 // Fig. 5.14: BreakTest.cs 2 // Using the break statement in a for structure. 3 4 using System; 5 using System.Windows.Forms; 6 7 class BreakTest 8 { 9 static void Main( string [] args ) 10 { 11 string output = &quot;&quot; ; 12 int count; 13 14 for ( count = 1 ; count <= 10 ; count++ ) 15 { 16 if ( count == 5 ) 17 break ; // skip remaining code in loop 18 // if count == 5 19 20 output += count + &quot; &quot; ; 21 22 } // end for loop 23 24 output += &quot;\nBroke out of loop at count = &quot; + count; 25 26 MessageBox.Show( output, &quot;Demonstrating the break statement&quot; , 27 MessageBoxButtons. OK , MessageBoxIcon. Information ); 28 29 } // end method Main 30 31 } // end class BreakTest Displays a message box the displays the output, has a title of “demonstrating the break statement,” uses an OK button, and displays an information icon A loop that starts at one, goes to ten, and increments by one If count = 5 then break out of the loop Display the last value that the counter was at before it broke
  • 27. ContinueTest.cs 1 // Fig. 5.15: ContinueTest.cs 2 // Using the continue statement in a for structure. 3 4 using System; 5 using System.Windows.Forms; 6 7 class ContinueTest 8 { 9 static void Main( string [] args ) 10 { 11 string output = &quot;&quot; ; 12 13 for ( int count = 1 ; count <= 10 ; count++ ) 14 { 15 if ( count == 5 ) 16 continue ; // skip remaining code in loop 17 // only if count == 5 18 19 output += count + &quot; &quot; ; 20 } 21 22 output += &quot;\nUsed continue to skip printing 5&quot; ; 23 24 MessageBox.Show( output, &quot;Using the continue statement&quot; , 25 MessageBoxButtons. OK , MessageBoxIcon. Information ); 26 27 } // end method Main 28 29 } // end class ContinueTest A loop that starts at 1, goes to 10, and increments by 1 If count = 5 then continue looping causing the program to skip the rest of the loop Create a message box that displays the output, has the title “using the continue statement,” uses an OK button, and displays an information icon.
  • 29. 5.8 Logical and Conditional Operators Operators Logical AND (&) Conditional AND (&&) Logical OR (|) Conditional OR (||) Logical exclusive OR or XOR (^) Logical NOT (!) Can be avoided if desired by using other conditional operators Used to add multiple conditions to a statement
  • 30. 5.8 Logical and Conditional Operators
  • 31. 5.8 Logical and Conditional Operators
  • 32. LogicalOperators.cs 1 // Fig. 5.20: LogicalOperators.cs 2 // Demonstrating the logical operators. 3 using System; 4 5 class LogicalOperators 6 { 7 // main entry point for application 8 static void Main( string [] args ) 9 { 10 // testing the conditional AND operator (&&) 11 Console.WriteLine( &quot;Conditional AND (&&)&quot; + 12 &quot;\nfalse && false: &quot; + ( false && false ) + 13 &quot;\nfalse && true: &quot; + ( false && true ) + 14 &quot;\ntrue && false: &quot; + ( true && false ) + 15 &quot;\ntrue && true: &quot; + ( true && true ) ); 16 17 // testing the conditional OR operator (||) 18 Console.WriteLine( &quot;\n\nConditional OR (||)&quot; + 19 &quot;\nfalse || false: &quot; + ( false || false ) + 20 &quot;\nfalse || true: &quot; + ( false || true ) + 21 &quot;\ntrue || false: &quot; + ( true || false ) + 22 &quot;\ntrue || true: &quot; + ( true || true ) ); 23 24 // testing the logical AND operator (&) 25 Console.WriteLine( &quot;\n\nLogical AND (&)&quot; + 26 &quot;\nfalse & false: &quot; + ( false & false ) + 27 &quot;\nfalse & true: &quot; + ( false & true ) + 28 &quot;\ntrue & false: &quot; + ( true & false ) + 29 &quot;\ntrue & true: &quot; + ( true & true ) ); 30 Only true if both inputs are true Only false if both inputs are false The result is only true if both are true Outputs a truth table for the conditional AND operator (&&) Outputs a truth table for the conditional OR operator (||) Outputs a truth table for the logical AND operator (&)
  • 33. LogicalOperators.cs Program Output 31 // testing the logical OR operator (|) 32 Console.WriteLine( &quot;\n\nLogical OR (|)&quot; + 33 &quot;\nfalse | false: &quot; + ( false | false ) + 34 &quot;\nfalse | true: &quot; + ( false | true ) + 35 &quot;\ntrue | false: &quot; + ( true | false ) + 36 &quot;\ntrue | true: &quot; + ( true | true ) ); 37 38 // testing the logical exclusive OR operator (^) 39 Console.WriteLine( &quot;\n\nLogical exclusive OR (^)&quot; + 40 &quot;\nfalse ^ false: &quot; + ( false ^ false ) + 41 &quot;\nfalse ^ true: &quot; + ( false ^ true ) + 42 &quot;\ntrue ^ false: &quot; + ( true ^ false ) + 43 &quot;\ntrue ^ true: &quot; + ( true ^ true ) ); 44 45 // testing the logical NOT operator (!) 46 Console.WriteLine( &quot;\n\nLogical NOT (!)&quot; + 47 &quot;\n!false: &quot; + ( ! false ) + 48 &quot;\n!true: &quot; + ( ! true ) ); 49 } 50 } Conditional AND (&&) false && false: False false && true: False true && false: False true && true: True Conditional OR (||) false || false: False false || true: True true || false: True true || true: True Returns the opposite as the input Returns false when the two conditionals are the same If one is true the result is true Outputs a truth table for the logical OR operator (||) Outputs a truth table for the logical exclusive OR operator (||) Outputs a truth table for the logical NOT operator (!)
  • 34. LogicalOperators.cs Program Output Logical AND (&) false & false: False false & true: False true & false: False true & true: True     Logical OR (|) false | false: False false | true: True true | false: True true | true: True     Logical exclusive OR (^) false ^ false: False false ^ true: True true ^ false: True true ^ true: False     Logical NOT (!) !false: True !true: False
  • 35. 5.9 Structured Programming Summary Control Structures Only one entrance Only one exit Building blocks to programming Allow nesting Makes code neater and easier to follow No overlapping structures The goto keyword
  • 36. 5.9 Structured Programming Summary 3 forms of control necessary Many ways to implement these controls Sequential (only 1 way) Straight forward programming Selection (3 ways) if selection (one choice) if/else selection (two choices) switch statement (multiple choices) Repetition (4 ways) while structure do/while structure for structure foreach structure (chapter 7)
  • 37. 5.9 Structured Programming Summary
  • 38. 5.9 Structured Programming Summary Fig. 5.22 C#’s single-entry/single-exit sequence, selection and repetition structures. (part 1) Sequence . .
  • 39. 5.9 Structured Programming Summary Fig. 5.22 C#’s single-entry/single-exit sequence, selection and repetition structures. (part 2) Selection T F if structure (single selection) else/if structure (double selection) T F switch structure (multiple selections) . . break break break break T T T F F F .
  • 40. 5.9 Structured Programming Summary Fig. 5.22 C#’s single-entry/single-exit sequence, selection and repetition structures. (part 3) Repetition T F while structure T F do/while structure F T for structure/ foreach structure
  • 41. 5.9 Structured Programming Summary
  • 42. 5.9 Structured Programming Summary Fig. 5.24 Simplest flowchart.
  • 43. 5.9 Structured Programming Summary . . . Rule 2 Rule 2 Rule 2 Fig. 5.25 Repeatedly applying rule 2 of Fig. 5.23 to the simplest flowchart.
  • 44. 5.9 Structured Programming Summary Fig. 5.26 Applying rule 3 of Fig. 5.23 to the simplest flowchart. Rule 3 Rule 3
  • 45. 5.9 Structured Programming Summary Fig. 5.27 Stacked, nested and overlapped building blocks. Stacked building blocks Overlapping building blocks (illegal in structured programs) Nested building blocks
  • 46. 5.9 Structured Programming Summary Fig. 5.28 Unstructured flowchart.