C语言return;的用法

/*return的用法不是返回到上一层函数吗?为什么我用了return之后却结束了呢?编译器是vs2013*/#include<stdio.h>inti;voidskil... /*
return的用法不是返回到上一层函数吗?为什么我用了return之后却结束了呢?
编译器是vs2013

*/
#include <stdio.h>
int i;
void skill()
{
printf("三你没有技能。按3返回");
scanf_s("%d", &i, sizeof(i));
if (i == 3)
{
return;
}
}
void battle()
{
printf("二2.技能");
scanf_s("%d", &i, sizeof(i));
if (i == 2)
{
skill();
}
}
main()
{
printf("一1.战斗");
scanf_s("%d", &i, sizeof(i));
if (i == 1)
{
battle();
}
}
展开
 我来答
百度网友6fa3859
2016-01-12 · TA获得超过3349个赞
知道小有建树答主
回答量:1148
采纳率:85%
帮助的人:431万
展开全部
return是C语言中的一个关键字,作用是结束当前函数的执行,将返回值压栈,并将控制权返回到上一级函数。
函数的返回值类型根据函数声明中指定的类型确定,若函数返回值为void时,即不需要返回值,这时函数中不需要提供return。但是若在某种情况下需要结束当前函数的执行,则用return; 来实现。
kaixingui2012
推荐于2018-02-26 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6504万
展开全部
#include <stdio.h>
int i;
void skill()
{
printf("三你没有技能。按3返回");
scanf_s("%d", &i, sizeof(i));
if (i == 3)
{
return;  //这里返回battle
}
printf("return skill\n");//加上这句能看到行程//如果i是3,你看不到这里
//这里虽然没有return ,也会返回battle
}
void battle()
{
printf("二2.技能");
scanf_s("%d", &i, sizeof(i));
if (i == 2)
{
skill(); //收到返回,继续下面
}
printf("return battle\n");//加上这句能看到行程
//走到这里,没事做,返回main
}
main()
{
printf("一1.战斗");
scanf_s("%d", &i, sizeof(i));
if (i == 1)
{
battle(); //收到battle的返回,继续下面
}
printf("return main\n");//加上这句能看到行程
//没事做,结束main
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
BINGO小酷
2014-08-04
知道答主
回答量:44
采纳率:0%
帮助的人:12万
展开全部
是返回到上一层函数,可是你每一层的函数调用了里面的一层函数后,接下来就什么都不做了,程序会继续执行,而你什么都没写,当然什么都没做就一直返回到最上面一层函数知道结束。
更多追问追答
追问
我不是写了吗?一,二,三之类的啊,而且还有等待按键啊
我知道了。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fastfs
2014-08-04 · TA获得超过1423个赞
知道大有可为答主
回答量:2659
采纳率:62%
帮助的人:811万
展开全部
你从skill返回后,下面没有代码了呀。
追问
这样啊,我想返回到battle()刚开始那块怎么办
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
鱼块a6
2020-11-09 · TA获得超过2.5万个赞
知道答主
回答量:16.5万
采纳率:12%
帮助的人:8123万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式