两个个关于C语言循环跳出的问题?

第一个
if(xxx)
{
switch(yyy)
{
case 1:if(aaa)return;
case 2:

}
}
那个return能否跳出if(xxx),用break;语句是否效果一样?

第二个
if(xxx)
do
{
if(aaa)break;
}
while();
}
这里面的break语句能否跳出if(xxx)?

请求详细回答,最好是能够有这两语句和循环的具体详细的说明,满意追加50分!!

通常在C语言里面使用的跳转语句主要有四种:
goto
continue
break
return

先将四种都为你做一个简单的介绍:
goto :
用于模块之间的跳转,次跳转功能强大,可实现在程序内部任意位置跳转,调用形式为:
A: 模块一;//在这里A是一个标示符,常用大写字母表示,表示跳转后程序执行的起始位子

模块二
{
goto A;//跳转到A处执行
}
在C语言中这种形式的调用通常发生在菜单的制作上,用于多个模块之间进行切换,可以嵌套使用。但是这种编程方式并不提倡使用,在跳转过程中可能会带来不可预知的BUG。应尽量避免使用。

continue
continue一般用于加速循环,一般在循环体内部进行调用,其功能是:结束本次循环,是循环快速地进入到下一次循环中,比如:
for(;;)
{
…………;
if(ture)
continue;
…………;
}
当if条件为真时,循环进入下一次;

break
一般用于跳出本循环,即跳出break所在的循环,哪个循环调用了break,就跳出哪个循环;

比如:
while()
{
for(;;)
{
…………
break;
……
}
}

在这段模板中,for 调用了break;当执行到break时跳出for,但是不跳出while,而是继续执行while循环

return
一般的用法 时为了实现返回,返回一个值或其他复杂类型,都是可以的,
return 一般都用在被调用的对象(对象一)里面,调用以后返回到调用对象(对象二)即,当对象二调用对象一时,如果对象一内部调用了return语句,则程序执行返回到,对象二调用对象一得下一条语句继续执行,
比如:(这里的对象在C语言里面就是函数)
对象一()
{
return;
}
对象二()
{
语句一;
对象一();
语句二;

}
当程序执行到对象二时,会调用对象一,转到对象一种去执行,当执行到return时,会返回到对象二中,执行语句二

对于你的提问现给出如下解释:
第一个程序段

时对于return的调用,调用之后,程序会跳出main函数,也就是说return有结束函数调用的功能。

第二个程序段:
do
while();
是一个循环体,break在循环内部调用,跳出循环,但不跳出if,

一般语言里面的跳转都满足上述规律,但不排除,在特殊的算法内部特殊的应用

希望你能够明白
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-03-20
第一个:
return 直接跳出函数,break只是跳出循环(包括for循环while循环do-while循环和switch),这里用了return之后都跳出函数了,肯定在if之外,而用break只是跳出那层switch,还是在if里面的
第二个:
同理,这里的break只能跳出do-while,还是在if里面
第2个回答  2010-03-20
第一个:
return 是肯定能跳出 if(xxx)的,return是返回,遇到return直接就去函数结尾了。
用break;语句效果肯定不一样,break;只不过是跳出switch(yyy)函数,然后继续运行下去。

给个代码你清楚下:
#include <stdio.h>
void main()
{
int x = 1, y = 2;
if ( x )
{
switch ( y )
{
case 2: if ( 1 ) return ; // 换break;试下
case 3: printf ("^_^\n");
}
printf ("^_^\n");
}
}

第二个:
break语句不能跳出if(xxx);break只是跳出循环,而不是要结束函数。
给个例子你能更好的看清楚。
#include <stdio.h>
void main()
{
int x = 1, y = 2;
if ( x )
{
do
{
if ( 1 ) break;
} while ( y );
printf ("^_^\n");
}
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网