Algoritmiek Controle-structuren Loops; Switch-statement. Hoorcollege 5 - Ma. 2 okt L.M. Bosveld-de Smet
Flow of Control
Flow of Control (1) Sequentially ordered statements Sequence of simple statements Branching statements simple if-statement if-else-statement multibranch if-else-statement switch-statement
Skate Loop
Sky Loop
Infinite Loop
Infinite loop web design
Flow of Control (2) Loop-statements: while-statement do-while-statement for-statement
while-statement Boolean_Expr. ? Body Semantics while ( ) { } Syntax
Example while-statement … int next = 1, total = 0; while (next > 0) { next = Integer.parseInt(SimpleIO.readLine()); total = total + next; } System.out.println (total); …
do-while-statement Boolean_Expr. ? Body Semantics do { } while ( ) Syntax
Example do-while-statement … int count = 1, number = 5; do{ System.out.print (count + “, “); count++; } while (count <= number); … count: 1(true), 2(true), 3(true), 4(true), 5(true), 6(false)
for-statement Initializing action Update action Body Boolean_Expr.? Syntax for ( ; ; ) { } Semantics
Example 1 for-statement … int countDown; for (countDown=3 ; countDown>=0 ; countDown-- ) { System.out.println (countDown); System.out.println (“and counting.”); } System.out.println(“Blast off!”); …
Example 2 for-statement … int product = 1, number; for ( number=1 ; number <= 10 ; number++ ) product = product * number; System.out.println ( “Product of numbers 1 through 10 is “ + product); …
Welk loop-statement? Aantal iteraties loop body Controle-mechanisme While = altijd ‘safest choice’
Techniek loop-ontwerp Schrijf de lijst van acties uit die het programma moet uitvoeren Ga op zoek naar een herhalend patroon Noteer dit in pseudocode Let op dat de loop body niet altijd de volgorde van acties in je lijst hoeft te hebben Kijk welke variabelen geïnitialiseerd moeten worden, en kijk wat de beginwaarde moet zijn Let op dat beginwaarden niet altijd 0 moeten zijn Bestudeer hoe de loop het beste verlaten kan worden
Verlaten van een loop Count-controlled loops Vraag de gebruiker Sentinel value
Loop Bugs Infinite loops Off-by-one errors Nooit uitgevoerde loops Test and retest ! Trace variables !
Infinite loop song 1. Well, I don't know how I got in this state. Hey, it seems that I'm a victim of fate, The loop that I wrote just doesn't work, Now I'm feeling like an infinite jerk. Dave to the left of me -- J.D. to the right, Here I am, stuck in an infinite loop. Here I am, stuck in an infinite loop.
Switch-statement
Break statement Break in switch-statements In loop-statement De loop waarin het programma zit wordt direct verlaten Ga er spaarzaam mee om!
Variabelen declaraties Binnen de loop, alleen als dit zinvol is Buiten de loop, als variabelen buiten loop nodig zijn.