| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 431 人关注过本帖
标题:这程序错哪啦?
只看楼主 加入收藏
stcrs
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2006-6-29
收藏
 问题点数:0 回复次数:3 
这程序错哪啦?

using System;
class Student
{
int[] mark=new int[5]{89,98,78,85,58};
string[] lessons = { "c#", "java", "c++", "database", "english" };
public Student()
{
Console.WriteLine("begin!");
}//student
private int GetMark(string tLesson)
{
for(int i=0;i<5;i++)
{
if(tLesson==lessons[i])
{
return mark[i];
}//if
if(i==4)
{
return -1;
}//if
}//for
}//getmark

public int this[string lesson]
{
get
{
return (GetMark(lesson));
}//get

}//this
}//Student
class test
{

public static void Main()
{
Student student=new Student();
System.Console.WriteLine("此学生C#的分数为"+student["c#".ToLower()]);
}//main
}//test

总是报
E:\c#\作业\索引\Class1.cs(10): “Student.GetMark(string)” : 并非所有的代码路径都返回值

2006-10-22 22:41
skyland84
Rank: 2
等 级:新手上路
威 望:4
帖 子:544
专家分:0
注 册:2006-10-9
收藏
得分:0 
private int GetMark(string tLesson)
{
for(int i=0;i<5;i++)
{
if(tLesson==lessons[i])//如果这里 包括了所有的 非i==4的情况 那就没有错了!
{
return mark[i];
}//if
if(i==4)// 这里 i==4的时候 有返回
{
return -1;
}//if
}//for
//再加个return 怎么样? 是不是考虑 漏掉了?
}//getmark

决定人生~
2006-10-23 10:02
noshow
Rank: 2
等 级:新手上路
威 望:4
帖 子:1127
专家分:0
注 册:2006-4-21
收藏
得分:0 
缺少 return
因为系统扫描的时候 扫描到if是透明的
因为你的if里的return只在条件真的情况下才起作用
系统会做最坏打算
如果都不真的话就没有返回值

建议 先设置一个 int returnNumber=0;
然后在if里对它进行修改
在最后 return returnNumber;
这样如果没有判断过IF就返回默认值0

此号自封于2006年11月30日
2006-10-23 10:15
y998601
Rank: 1
等 级:新手上路
威 望:1
帖 子:141
专家分:0
注 册:2006-10-21
收藏
得分:0 
上面两位大侠说的很清楚了

三个臭皮匠,顶一个诸葛亮~~~
2006-10-23 17:40
快速回复:这程序错哪啦?
数据加载中...
 
   



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

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