This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
notes:cprog:fall2024:projects:cnv0 [2024/10/01 16:29] – [for() loops] tkastne1 | notes:cprog:fall2024:projects:cnv0 [2024/10/01 16:40] (current) – [while() loops] tkastne1 | ||
---|---|---|---|
Line 33: | Line 33: | ||
</ | </ | ||
- | The expression within parentheses will run every loop before the code block and is evaluated as a boolean | + | The expression within parentheses will run every loop **before** the code block and is evaluated as a boolean |
The code block will run only if the expression within the parentheses evaluates to true | The code block will run only if the expression within the parentheses evaluates to true | ||
Line 39: | Line 39: | ||
signed int value = 7; | signed int value = 7; | ||
while(value < 1000){ | while(value < 1000){ | ||
- | fprintf(stdout, | + | |
- | value = value * 2 + 3; | + | value = value * 2 + 3; |
+ | } | ||
</ | </ | ||
The loop in this code runs 7 times, outputting 7, 17, 37, 77, 157, 317, and 637; stopping before printing 1277 | The loop in this code runs 7 times, outputting 7, 17, 37, 77, 157, 317, and 637; stopping before printing 1277 | ||
Line 46: | Line 47: | ||
while() loops are best used when the amount of times a block of code is intended to run is not explicit or simple to calculate | while() loops are best used when the amount of times a block of code is intended to run is not explicit or simple to calculate | ||
====do-while loops==== | ====do-while loops==== | ||
+ | do-while loops are used to repeat a block of code until a certain condition is no longer met | ||
+ | |||
+ | The only difference between a do-while loop and a while() loop is that the block of code in a do-while loop is run unconditionally initially | ||
+ | |||
+ | The format of a do-while loop is as follows: | ||
+ | < | ||
+ | do{code block} | ||
+ | while(expression); | ||
+ | </ | ||
+ | The expression within parentheses will run every loop **after** the code block and is evaluated as a boolean | ||
+ | |||
+ | The code block will run only again if the expression within the parentheses evaluates to true | ||
+ | |||
+ | < | ||
+ | signed int value = 0; | ||
+ | do{ | ||
+ | fprintf(stdout, | ||
+ | value = value * 2 + 3; | ||
+ | } | ||
+ | while(value > 0 && value < 1000); | ||
+ | </ | ||
+ | This code prints value if it is between 0 and 1000 exclusive. However, value is printed while it is 0 because it was before the while() condition | ||