这种情况怎么返回值

giraffedl 2003-09-11 11:13:01
在C#中,我构造了下面的循环,当i的值等于5的时候,我想程序返回一个"false"值。可是编译的时候却报错:“并非所有的代码路径都返回值”这种情况下面我应该怎样取得返回值呢?
========================================
public bool Demo()
{
for(int i=0;i<=10;i++)
{
if(i==5)
{
return false;
}
}
}
...全文
26 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
badcody 2003-10-09
  • 打赏
  • 举报
回复
foxflying(会飞的鱼) :同意你的看法。
在一些代码量比较小的地方可以直接写return,但理论上来讲,写一个最终的return才是使逻辑更清晰化的方式。
wangj2001 2003-10-09
  • 打赏
  • 举报
回复
public bool Demo()
{
for(int i=0;i<=10;i++)
{
if(i==5)
{
return false;
break;
}
}
return true;
}
foxflying 2003-10-09
  • 打赏
  • 举报
回复
呵呵,没想到会引发这么多讨论。
如果一定要在i==5的时候返回,那么在
bck = true;
后面加上一个
break;
就可以了。

to badcody(升龙就是硬道理)
从这个程序来说可以不声明一个专门的返回变量。可是当有多个判断的时候,就有必要声明一个专门的返回变量,这样可以保证程序更容易被别人看懂。如果到处都是return,看起来就不容易明白了。
ffj521 2003-10-09
  • 打赏
  • 举报
回复
xixigongzhu(夕夕公主) is right!
拿棵草 2003-10-09
  • 打赏
  • 举报
回复
对,同意badcody说的.其实小弟人为,学什么语言并不重要,最重要的是思路,是想法,是实现的算法.

小弟我是一个初学C#的新手,请大家多多关照!
badcody 2003-10-09
  • 打赏
  • 举报
回复
xixigongzhu(夕夕公主) 的更好拉,除非特别必要,要不然不用声明一个bool变量(bool bck = false;)用于返回,可以直接return,避免进行多余的循环;

实际情况是:
foxflying(会飞的鱼) 的代码会循环11次, xixigongzhu(夕夕公主) 的代码只循环5次。
xiaoleifeng 2003-10-09
  • 打赏
  • 举报
回复
foxflying(会飞的鱼)
说的是正确的!
badcody 2003-10-09
  • 打赏
  • 举报
回复
eheartcool(ced) 的代码不妥当,循环一次就return了。
iamjialin(雨林) 的也不对,其结果一定是返回 true;

foxflying(会飞的鱼)的代码才是正确的。
xixigongzhu 2003-10-09
  • 打赏
  • 举报
回复
public bool Demo()
{
for(int i=0;i<=10;i++)
{
if(i==5)
{
return false;
}
}
return true;
}
出错是因为在方法的最后没有返回值。如果方法定义有返回值,那么必须保证所有可能的代码路径都必须有返回值。而斑竹只在i==5的时候有返回值,所以报错。
iamjialin 2003-10-09
  • 打赏
  • 举报
回复
更正上面 return bl;
windinwing 2003-10-09
  • 打赏
  • 举报
回复
to foxflying(会飞的鱼)
iamjialin 2003-10-09
  • 打赏
  • 举报
回复
public bool Demo()
{
bool bl = false;
for(int i=0;i<=10;i++)
{
if(i==5)
{
bl = false;
}
else
{
bl = true;
}
}
return bck;
}
foxflying 2003-10-09
  • 打赏
  • 举报
回复
最好写成这样:
public bool Demo()
{
bool bck = false;
for(int i=0;i<=10;i++)
{
if(i==5)
{
bck = true;
}
}
return bck;
}
tigase 2003-10-09
  • 打赏
  • 举报
回复
public bool Demo()
{
for(int i=0;i<=10;i++)
{
if(i==5)
{
return false;
}
else
{
return true
}
}
}

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧