首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

区别在哪?解决思路

2012-03-11 
区别在哪???for(){if(x1)breakif(x%21){x3*x+1i++}if(x%20){xx/2i++}}for(){if(x1)bre

区别在哪???
for(;;)
{if(x==1)break;
if(x%2==1){x=3*x+1;i++;}
if(x%2==0){x=x/2;i++;}
}



for(;;)
{if(x==1)break;
if(x%2==1){x=3*x+1;i++;}continue;
if(x%2==0){x=x/2;i++;}continue;
}

有什么区别?求解释

[解决办法]
for(;;)
{if(x==1)break;
if(x%2==1){x=3*x+1;i++;}
if(x%2==0){x=x/2;i++;}
}



for(;;)
{if(x==1)break;
if(x%2==1){x=3*x+1;i++;}continue;
if(x%2==0){x=x/2;i++;}continue;
}

区别是第二个for循环的第三个if永远不会被执行

 

[解决办法]
continue 跳回循环开头 不执行下面语句了
[解决办法]
单步运行一下就知道区别了
[解决办法]

探讨

单步运行一下就知道区别了

[解决办法]
第一个会执行第二个IF判断条件,虽然他永远不会执行后面内容。
但第二个,永远不会进行IF条件判断。直接返回FOR(;;)继续执行。
[解决办法]
探讨

continue 跳回循环开头 不执行下面语句了

[解决办法]
continue的作用是结束本次循环,进入下一次循环。
[解决办法]
探讨
for(;;)
{if(x==1)break;
if(x%2==1){x=3*x+1;i++;}
if(x%2==0){x=x/2;i++;}
}



for(;;)
{if(x==1)break;
if(x%2==1){x=3*x+1;i++;}continue;
if(x%2==0){x=x/2;i++;}continue;
}

区别是第二个for循环的第三个i……

[解决办法]
探讨
for(;;)
{if(x==1)break;
if(x%2==1){x=3*x+1;i++;}
if(x%2==0){x=x/2;i++;}
}



for(;;)
{if(x==1)break;
if(x%2==1){x=3*x+1;i++;}continue;
if(x%2==0){x=x/2;i++;}continue;
}

区别是第二个for循环的第三个i……

[解决办法]
程序执行到continue时就会跳过下面的执行语句,重新返回for循环,重新判断x==1……
[解决办法]
continue是结束本次循环,和break(结束整个循环)不同,注意这点
[解决办法]
for(;;)
{if(x==1)break;
if(x%2==1){x=3*x+1;i++;}continue;
if(x%2==0){x=x/2;i++;}continue;
}
类似
for(;;)
{
if(x==1)
{
}
else if(x%2==1)
{
x=3*x+1;
i++;
}

else(x%2==0)
{
x=x/2;
i++;
}
}
[解决办法]
continue是结束本次循环,进入下一次循环
break是结束整个循环。
[解决办法]
楼主所示代码楼上讲的很清楚了,第二个的第三个if永远不会被执行,因为continue在判断语句外面

for(;;)
{if(x==1)break;
if(x%2==1){x=3*x+1;i++;}
if(x%2==0){x=x/2;i++;}
}



for(;;)
{if(x==1)break;
if(x%2==1){x=3*x+1;i++;continue;}
if(x%2==0){x=x/2;i++;continue;}
}

如果改成上面这样的话两段代码没有区别,因为x%2不可能即等于1又等于0。
如果换一个判断条件的话两端程序的结果不同,第二段代码如果进入第二个if就不可能进入第三个了,而第一段代码可以。
[解决办法]
continue 是 结束本次循环 下次再来 break是直接退出循环
------解决方案--------------------


你运行下不就知道咋回事了吗
[解决办法]
以下都针对第二个程序:
程序写错了吧,continue应该在{}里面吧。
continue马上结束本次循环进入下一次循环,即到for。
break结束本层循环,即整个for。
[解决办法]
for(;;)
{if(x==1)break;
if(x%2==1){x=3*x+1;i++;}
if(x%2==0){x=x/2;i++;}
}

没有continue 有机会被执行全部语句


for(;;)
{if(x==1)break;
if(x%2==1){x=3*x+1;i++;}continue; // 这里的continue在if外面 所以会被无条件执行 
if(x%2==0){x=x/2;i++;}continue; //上面continue之后 这句就执行不到了
}
[解决办法]
break与continue的区别运行下,分析就能明白
[解决办法]
Break 应该是直接就跳出循环了,Continue 是跳过这此继续执行。

热点排行