错误返回值
问题描述:
我不能在这个代码发现错误时:错误返回值
private int existb1b2(Bill b1, ArtQty artQty)
{
int test;
for(int i = 0; i < b1.ArtQty.Count(); i++)
{
if (b1.ArtQty[i].Article.Name == artQty.Article.Name)
test = 0;
else
test = -1;
}
return test;
}
return test
说(局部变量)INT测试错误:未分配的局部变量“测试”的使用
答
你有几个问题 - 首先,你需要分配一个初始值为test
,因为不能保证你甚至会输入for
循环。这是你的错误的来源。第二,如果你有一个匹配,你可能想要返回0 - 即代码被写入的方式,即使找到匹配,它也会返回-1,除非列表中的最后一项是匹配项。您可能更适合简单地返回找到匹配的时刻,无需迭代剩余的项目,甚至不需要本地变量分配。
试试这个:
private int existb1b2(Bill b1, ArtQty artQty)
{
for (int i = 0; i < b1.ArtQty.Count(); i++)
{
if (b1.ArtQty[i].Article.Name == artQty.Article.Name) return 0;
}
return -1;
}
或者,如果你只是想解决您的编译错误,你可以在你的int test;
线更改为int test = -1;
你有没有'return'声明该函数 – UnholySheep 2014-10-09 22:35:56
Anywhere还,当你有一场比赛时,你应该'摆脱'循环。 – 2014-10-09 22:36:31
当我使用'return test'时,它显示'(局部变量)int test' – Meh 2014-10-09 22:37:52