并非所有的代码都有返回值的问题 本帖最后由 mengjun5200 于 2010-07-25 20:58:07 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在最后一个}前 return 0; public int num(n){if(n<=10){n=10;return n;}else{for(int i=1;i<11;i++){if(n>30i){n=i*n;break;}}return n;}} if else 并没有列举所有的情况 有if就要有else,最后少一个else 少了个ELSE,好奇问下。30i指代什么? 在第一个else的反括号前加return,因为程序会在最外层的分支判断语句里寻找是否返回了值,还有,30i是什么,中间没有操作符吗? public int num(int n) { if (n <= 10) { n = 10; return n; } else { for (int i = 1; i < 11; i++) { if (n > 30 * i) { return i * n;//只有当n大于30i的时候才返回值 break; } } return -1; } } “并非所有的代码都有返回值的问题”这句话翻译的不够准确,所以才会让你有误解这句话的原意是“并非所有的代码分支都有返回值的问题”,if---else按中文讲是“花开两枝,各表一枝”if(n>30i)你的代码只处理了一个分支,另外一个else没处理,他自然会报错 既然声明了有返回值的方法(int),那么该方法体就要有相应类型的返回值(int),而你只是if..else了几种情况,所有情况下都应该return的。 用.net发的邮件XML为什么<有的变成了<? 【新手求教】复选框和单选框的生成 简单的问题,快来接分 一个关于DropDrowList的简单问题。 问一个有关split的问题,忘大家帮忙 困扰好久的问题--怎样将后台的变量输出到前台页面? ArrayList 转换成 string[] 新装visual studio.net2003的问题 关于 Microsoft HTML Help Workshop 的问题? 怎么用C#取得URL里“?”后的参数值呢? Flexigrid与asp.net的问题 后台创建控件
{
if(n<=10)
{n=10;
return n;
}
else
{
for(int i=1;i<11;i++)
{
if(n>30i)
{
n=i*n;
break;
}
}
return n;
}
}
public int num(int n)
{
if (n <= 10)
{
n = 10;
return n;
}
else
{
for (int i = 1; i < 11; i++)
{
if (n > 30 * i)
{
return i * n;//只有当n大于30i的时候才返回值
break;
}
}
return -1;
}
}
if(n>30i)你的代码只处理了一个分支,另外一个else没处理,他自然会报错