两个个关于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个回答  2013-09-24
第一个:实例:#include<stdio.h>
main()
{int a=1;<br> if(a==1)<br>{<br>switch(a++)<br>{<br> case 1: if(a==2) printf("break\n");return;<br> case 2: printf("hello\n");<br>}
}
}不管我用的return还是break,最后输出的都是break,说明这两个都可以跳出循环,效果一样。第二个:实例:#include<stdio.h>
main()
{int a=1;<br> if(a==1)<br>do<br>{<br>if(a==1) a++;break;<br>}
while(a<5);printf("%d\n",a);
}最后输出结果是2,说明break跳出了循环。如果没跳出循环输出的就应该是4.

两个个关于C语言循环跳出的问题?
通常在C语言里面使用的跳转语句主要有四种: goto continue break return 先将四种都为你做一个简单的介绍: goto : 用于模块之间的跳转,次跳转功能强大,可实现在程序内部任意位置跳转,调用形式为: A: 模块一;\/\/在这里A是一个标示符,常用大写字母表示,表示跳转后程序执行的起始位子 模块二...

两个个关于C语言循环跳出的问题
1、goto:用于模块之间的跳转,次跳转功能强大,可实现在程序内部任意位置跳转。在C语言中这种形式的调用通常发生在菜单的制作上,用于多个模块之间进行切换,可以嵌套使用。但是这种编程方式并不提倡使用,在跳转过程中可能会带来不可预知的BUG,应尽量避免使用;2、continue:一般用于加速循环,一般在循环体内...

两个关于C语言的问题。
1、在x=3的状态下进入do循环,第一次运行printf语句,首先使 x -= 2 ,x的内容减掉2,输出x的当前值,所以输出了1。接着进行循环条件判断,先进行 --运算,使x的内容变为0,!0的计算结果为真,循环继续进行。第二次运行printf首先 x-=2 即 x = 0-2,使x的内容变为-2,并被输出。当x...

C语言编程“循环跳出”的问题!
??处,break;可以跳出第二switch,因为第一个 switch的case y后有break;所以会正常跳出第一个switch 所以,在第一个switch后面,加上continue,就可以跳出for的本次循环 为了不发生意外,??处跳出的时候加个标志,在continue前确认这个标志后在执行。for(){ tiaochu=0; \/*每次循环开始都初始化标...

C语言循环问题?
注意第一个for的循环体是a++,所以两个for没有嵌套关系,是平行的两个for 第一个for循环执行2次 第二个for循环执行5次 最终,变量a自增为7

C语言循环输入数据时跳出方面的疑惑
如果你不按回车的话数据会在缓冲区不会到内存,可以输入超出n个数据,但后面输的没影响 如果你之后不需要输入数据的话

C语言 循环跳出问题
跳出for循环主要有以下2中方式:1、用break语句。如:int i;for(i=0; i<10; i++){ if(i>3) \/\/ 如果i>3,跳出for循环,执行printf语句 break;} printf("%d", i);2、用return语句(一般用在函数体中,作为函数的返回值跳出该函数,也即跳出了函数体中的for循环)int fun(int a){ ...

c语言大佬们帮帮忙,这两个循环怎么输出不一样
第二个为:从终端读整形,读取成功,scanf返回1,否者返回0.所以输入数字都为读取成功,返回1,1==0 为假,跳出while,当输入q时,读取失败,返回0,0==0为真,执行while。由于字符q一直没有被吃掉,导致q一直存在缓存中,被下一个scanf读取。一直读取失败。构成死循环。建议在while中添加getchar()...

有关C语言For循环跳出的问题!
简单说来,一个break只能跳出一层循环,你第一个方法,连续break两次,条件都一样,可以从两层循环里跳出来。第二个跳出一层循环后,还在外层循环内,所以继续循环,还会打印其他的结果,另外你输出的地方也不一样。

单片机c语言for循环出问题了
函数_crol_(b,1);和_cror_(b,1);有返回值,应该定义一个变量赋值或直接 return _crol_(b,1);还有个小问题,delay();定义的是uchar型,赋值竟然是600

相似回答
大家正在搜