标题:函数的返回值
只看楼主
casualhewo
Rank: 1
等 级:新手上路
帖 子:267
专家分:0
注 册:2006-6-13
 问题点数:0 回复次数:5 
函数的返回值

using System;

namespace Chex4
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
static int MaxValue (int[] intArray)
{
int maxVal = intArray[0] ;
for ( int i = 1 ; i < intArray.Length ; i++)
{
if (intArray[i] > maxVal)
{
maxVal = intArray[i] ;
}
return maxVal ;
}
}
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
int[] myArray = {1,8,3,6,9,0,2,5} ;
int maxVal = MaxValue(myArray) ;
Console.WriteLine ("fiwaf finwfjief {0}" , maxVal) ;


}
}
}
为什么调试结果说我"并非所有代码路径都能返回值";

搜索更多相关主题的帖子: 返回值 函数 summary int using 
2006-07-08 13:33
梦之翼
Rank: 1
等 级:新手上路
帖 子:74
专家分:4
注 册:2006-7-5
得分:0 
在if (intArray[i] > maxVal)
中如果intArray[i]<=maxVal就没有返回值了
修改代码如下:
if (intArray[i] > maxVal)
{
maxVal = intArray[i] ;
}
return maxVal ;
else
{
return xxx;//你像要返回的值
}

[此贴子已经被作者于2006-7-8 19:24:49编辑过]


既不回头,何必不忘。 既然无缘,何必誓言。 今日种种,似水无痕。 明夕何夕,君已陌路。
2006-07-08 19:24
llj_zjfc
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-7-8
得分:0 

///逻辑不正确,楼上的运行过了也是不行的,下面的代码就可以运行了


using System;

namespace Chex4
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
static int MaxValue(params int[] intArray)
{
int maxVal = intArray[0];
for (int i = 1; i < intArray.Length; i++)
{
if (intArray[i] > maxVal)
{
maxVal = intArray[i];
}

}
return maxVal;
}
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
int[] myArray = { 1, 8, 3, 6, 9, 0, 2, 5 };
int maxVal = MaxValue(myArray);
Console.WriteLine("fiwaf finwfjief {0}", maxVal);
Console.Read();


}
}
}

2006-07-08 19:43
月夜枫华
Rank: 4
等 级:贵宾
威 望:12
帖 子:437
专家分:42
注 册:2006-1-2
得分:0 
因为如果不执行循环体,即初始循环条件都不满足,则函数没有任何地方执行return语句

2006-07-08 19:50
casualhewo
Rank: 1
等 级:新手上路
帖 子:267
专家分:0
注 册:2006-6-13
得分:0 

是的啊。
我刚刚在看书的时候也发现了,我自己的错误了.
跟斑竹说的一样.
"因为如果不执行循环体,即初始循环条件都不满足,则函数没有任何地方执行return语句"
谢谢
小弟初来希望以后大家能多传我一些经验.谢谢各位;


超越自己,挣脱平凡
2006-07-08 21:53
这个真叫烦那
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-7-9
得分:0 
在循环体中遇到return语句就跳出循环,返回该值.
if (intArray[i] > maxVal)
{
maxVal = intArray[i];
}
return maxVal;
就像你写的,当执行换if()就要执行return语句了,到这里就停止了,返回的maxVal的值为8.
把return放到循环外就完全可以了.

个人见解,如果错了请批评指点.

if(不耻下问) { MessageBox.Show(\"好好学习,天天向上\"); }
2006-07-09 16:11



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-77208-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.234626 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved