thank you very much for answering my query

Thomas Hruska <[EMAIL PROTECTED]> wrote:          titli_juit wrote:
> #include<stdio.h>
> int main()
> {
> int i=0;
> for(i=0;i<20;i++)
> {
> switch(i){
> case 0:i+=5;
> case 1:i+=2;
> case 5:i+=5;
> default : i+=4;
> break;}
> 
> printf("%d,",i);
> } 
> 
> return 0;
> }
> 
> the output is 16,21
> 
> can you please explain how am i getting this output? 

switch-case requires break statements before the next 'case' or the 
logic falls through to the next case statement which executes...and so on...

So:

When i = 0, i = i + 5 + 2 + 5 + 4;

Thus:
i = 0 + 5 + 2 + 5 + 4 = 16

i (16) is printed out. The loop increments i by 1 (i.e. 17). Then the 
switch-case executes. Since i is 17, the default is executed and i 
becomes 21.

The actual output is '16,21,' (without quotes). You forgot a comma.

-- 
Thomas Hruska
CubicleSoft President
Ph: 517-803-4197

*NEW* MyTaskFocus 1.1
Get on task. Stay on task.

http://www.CubicleSoft.com/MyTaskFocus/



                         

       
---------------------------------
 Flying to Bangalore or Bhopal? Search for tickets here.

[Non-text portions of this message have been removed]

Reply via email to