+ 2

C language, increment Number doWhile

Hello world, I did a simple prog that just increase number on row, I'm wondering why it also printf number 11 even if I want stop at number 10, where is bug? thank u for attention, have nice day https://code.sololearn.com/cTLK6XMn45SN/?ref=app

8th Feb 2018, 6:39 PM
dimitriDV
dimitriDV - avatar
6 Answers
+ 11
this is because do while loop is a exit control loop where first the instructions are execute then the condition is checked in your program it print value till 10 then after 10 at 11 condition is false but as the property of do while loop Loop body will be executed first, and then condition is checked so it will print 11 too Exit Controlled Loop is used when checking of test condition is mandatory after executing the loop body.
8th Feb 2018, 6:54 PM
GAWEN STEASY
GAWEN STEASY - avatar
+ 10
#include <stdio.h> int main() { int x; int y; for(x=1, y=10; x<=y; x++) { printf ("%d\n",x); } return 0; } you can do like this too
8th Feb 2018, 7:02 PM
GAWEN STEASY
GAWEN STEASY - avatar
+ 9
#include <iostream> using namespace std; int main () { int i= 1; while( i <=10 ) { cout << "value of i: " << i << endl; i++; } return 0; } and by while loop you can do like this
8th Feb 2018, 7:03 PM
GAWEN STEASY
GAWEN STEASY - avatar
+ 1
thank u, so I have to do a statement saying to stop printf after 10 was printed?
8th Feb 2018, 6:57 PM
dimitriDV
dimitriDV - avatar
+ 1
The first 10 prints are done inside the for loop. Because you declared the x and y variables outside of the loop they keep theire values. Last loop: x=10, but it will do another increment after the loop So after the for loop x=11 A do-while loop always runs the first time and then checks the conditions if it should run more times. => printf -> x=11 after the printout there is another x++ So actually x =12 at the end of the program @Gawen Steasy Your answer is right, but the main problem in his code are not the do while loop alone
8th Feb 2018, 7:03 PM
Alex
Alex - avatar
0
Because you always execute the contents of a do loop at least once, so x was 11 before you even started the loop. https://code.sololearn.com/cAwnUSo6kVTF/#c
8th Feb 2018, 7:13 PM
Jesse Bayliss
Jesse Bayliss - avatar