void main()
{ int x=0,y=0,z=0;
do
{
switch(y++)
case 1:x++;break;
case 3:x+=3;break;
default:x=x%2;continue;
}
z++;
while(y<5);
printf("x=%d,y=%d,z=%d\n",x,y,z);
结果:
x=0,y=5,z=2
052
266
1 1 0
x=0, y=5, z=2
x=0 y=1 z=1
x=0,y=5,z=2
515
第一次循环 (y = 0):
switch(y++),y 变为 1。 default 执行,x = x % 2,x 仍为 0。 continue,z 不增加。 第二次循环 (y = 1):
switch(y++),y 变为 2。 case 1:,x++,x 变为 1。 z++,z 变为 1。 第三次循环 (y = 2):
switch(y++),y 变为 3。 default 执行,x = x % 2,x 仍为 1。 continue,z 不增加。 第四次循环 (y = 3):
switch(y++),y 变为 4。 case 3:,x += 3,x 变为 4。 z++,z 变为 2. 第五次循环 (y = 4):
switch(y++),y 变为 5。 default 执行,x = x % 2,x 变为 0。 continue,z 不增加。 循环结束,因为 y < 5 不再成立。 (y每次先赋值再自增)
x= 碰见break就跳出switch继续执行z++ 碰见continue就跳出这次while
0 5 2
0,5,2
0 2 5
只能在循环体内和switch语句体内使用break。
continue 只能在循环语句中使用,即只能在 for、while 和 do…while 语句中使用。
x=0,y=5,z=5
x=1,y=1,z=1
moonya 回复 moonya: 052
0 1 0
1 2 1
1 3 1
4 4 2
continue;执行下一层do-while循环;
zzw1803472614 回复 zzw1803472614: z=2 =>continue会继续下一个for循环
0,5,2
这个怎么做
Srk 回复 一站成研: x=0 y=1 z=0 x=1 y=2 z=1 x=1 y=3 z=1 x=4 y=4 z=2 x=0 y=5 z=2 碰见break就跳出switch继续执行z++ 碰见continue就跳出这次while
x=0, y=5,&nb...
用户登录可进行刷题及查看答案
登录后提交答案