Why continue keyword is not giving the expected output with while loop? | Sololearn: Learn to code for FREE!
New course! Every coder should learn Generative AI!
Try a free lesson
+ 5

Why continue keyword is not giving the expected output with while loop?

I am trying to check the usage of the continue key word using while loop. It is not working correct as it working with for loop. Please help me in understanding this. https://code.sololearn.com/cXR3rK3gFRFQ/?ref=app

1st Apr 2018, 3:09 PM
Ravi Chythanya
Ravi Chythanya - avatar
13 Answers
+ 25
I'll just generalize what John Wells said. FOR loop syntax in general is: for ( counter declaration; exiting condition; counter increment), so you take care about everything within the parentheses. for a WHILE loop only the condition is in the parentheses, so you have to take care of the declaration of the counter before, and for incrementing it within the body of the loop itself.
2nd Apr 2018, 11:14 AM
Nikolay Nachev
Nikolay Nachev - avatar
+ 12
You forgot to use i++ in the while loop. For loop doesn't need it as i++ is there within the brackets but it is necessary in while loop so that the value of i will keep on increasing and the loop will continue untill i<10. Use this int i=0; while(i<10) { i++; if(i==3) continue; printf("%d\n",i); } i++ should be at the start not at the end because then when i becomes 3 i++ wouldn't be executed if it is at the end because continue forces the loop to start again. To get output from 1 to 10 use i=0 and i<10 instead of i=1 and i<=10 otherwise output would be 2 to 11.
2nd Apr 2018, 7:05 PM
Rishu Kumar
Rishu Kumar - avatar
+ 10
That code doesn't change i like the for loop does. Using continue within it, you can't write it that way, as i increment needs to be at the end, and continue won't get there. This will work: i=0; while(i<10) { i++; if(i==3) continue; printf("%d\n",i); }
1st Apr 2018, 3:44 PM
John Wells
John Wells - avatar
+ 4
The problem with your while loop is that its missing an increment so it was printing 1's until the code overflows. i=1; while(i<10) { if(i==3) //Your code gets stuck here because i is never incremented. continue; printf("%d\n",i); } //The below code will give you the same result as the for loop. i=1; while(i<=10) { if(i==3){ i++; continue; } printf("%d\n",i++); } see my answer below. https://code.sololearn.com/c3hgTOZuyC1G/#c
3rd Apr 2018, 7:45 AM
George Tsiga
George Tsiga - avatar
+ 3
It is doing exactly what you told it to do. What your code is doing is saying when i == 3 do not execute anything in the loop, just move on to the next number. And it does that. It does not print 3... So maybe you didn't really code what you wanted
1st Apr 2018, 3:16 PM
cyk
cyk - avatar
+ 2
Thank you cyk, but please check the code in comments. That code is not working as like for loop.
1st Apr 2018, 3:25 PM
Ravi Chythanya
Ravi Chythanya - avatar
+ 2
dude idk what you doing but I must increment so check this code https://code.sololearn.com/ckIQ4v9JAIN0/?ref=app
5th Apr 2018, 5:11 PM
Пробен Профил
Пробен Профил - avatar
+ 2
check out your while loop condition and also check the condition when the continue will execute...I think you can solve your problem easily by doing this. If not then please check the syntaxes one more time.
8th Apr 2018, 8:17 PM
Sourav Tamli
Sourav Tamli - avatar
+ 1
by using continue statement in while loop just u can skip the successive statements so you can't use the control. upto the end of program
2nd Apr 2018, 6:47 PM
Minion Foodie
Minion Foodie - avatar
+ 1
See , in for loop syntex u include a i++ for the increment of i inside d brackets but in while loop syntex u need to manually increment the value of i inside the parenthesis.
3rd Apr 2018, 9:56 PM
Chandan singh
Chandan singh - avatar
+ 1
Try this code I hope you get success. $foo = 'Hello'; for ($p = 0; $p < 8; $p++) { switch($p) { case 3: if ($foo === 'Hello') { echo $foo; break; } else { continue 2; } default: echo "Sleeping...<br>"; continue 2; } echo "World!"; break; } https://babasupport.org/printer/apple-printers-customer-support/619
5th Apr 2018, 7:03 AM
Oram Ram
Oram Ram - avatar
+ 1
you have not increased the value of i anywhere within the while loop. Try it once. before the end of loop add i++;
6th Apr 2018, 11:15 PM
Prashant Acharya
Prashant Acharya - avatar
+ 1
your code might be facing some issues try to check step by step
7th Apr 2018, 3:55 AM
Shubhangi Gupta
Shubhangi Gupta - avatar