int i,x;
for(i=1,x=1;i<=20;i++)
{
if(x>=10) break;
if(x%2==1)
{x+=5;continue;
}
x-=3;
}
求 x值 与i值 要详解 谢谢啦!!!
int i,x;
for(i=1,x=1;i<=20;i++)
{
if(x>=10) break;
if(x%2==1)
{x+=5;continue;
}
x-=3;
}
求 x值 与i值 要详解 谢谢啦!!!
i=1,(x%2=1).x=1+5=6
i=2,(x%2=0),x=6-3=3
i=3,(x%2=1),x=3+5= 8
i=4,(x%2=0),x=8-3= 5
i=5,(x%2=1),x=5+5= 10
i=6,(x>=10)退出循环
最后结果x=10; i=6
一开始输入x=1,i=1进入循环,然后执行if(x%2==1),x=6,推到循环开始i=2,x=6执行if(x>=10)后,
x=3瑞出循环,一次类推,最后得出结果x=10,i=6
for(i=1,x=1;i<=20;i++) //i从1到20的循环
if(x>=10) break; //当i大于等于10的时候,跳出循环
if(x%2==1) //当x为单数的时候,执行大括号里的语句,如果为偶数,直接执行x-=3
x+=5;continue; //x的值+5,然后跳过该循环执行下面语句
x-=3; //x的值减去3
这种问题最好不要直接问结果的值是多少,对于程序来说值不重要,因为你给的条件一改变结果就会改变,你最好是知道它的原理或流程。
这段代码的意思如下:
首先是一个for循环,这里就应该想到,如果对于这个循环没有特别原因的话,这个for循环就会循环二十次。
然后看循环体里面,首先是一个if判断语句,它的意思就是如果x大于或等于10的话,它就会直接跳出循环,也就是循环体里在break之后的语句就不会在执行了。
后面又是一个if判断,这里是说如果x对2取模等于1的话执行if判断体里的语句,也就是说如果x是奇数执行if体里的语句(因为一个数除以2余数只有一个,那就是1,所以为1的话就说明这个数为奇数),对于if体里的语句,首先就是x+=5,就等于x=x+5,意思就是x自加5。然后就是continue,与break类似,它不是跳出循环,而是仅continue后的语句不执行,而结束本次循环跳到循环体开始,继续执行。
然后两次判断就是一个x自减3的操作x-=3。
最后你可以自己画一个流程图,按照流程图把代码走一遍,自己预测一下结果,有时间自己在电脑上运行一下,看一下结果于自己预料的是否一样。
学会看源码是非常重要的,楼主自己再想一想吧。