【发布时间】:2019-06-19 11:19:11
【问题描述】:
我是 C 新手,但我了解编码的基础知识。但是,我看不出为什么编译器会返回错误:
函数“..”不以返回语句结束!
这是我的代码:
string same_start_end(string s)
{
char first_letter = string_charat(s, 0);
string empty = "";
if( string_length(s) <= 1)
{
return s;
}
else if (string_length(s) > 1)
{
for (int i = 0; i < string_length(s); i++)
{
if( (string_charat(s, i) == first_letter) && (i != 0))
{
return string_sub(s, 0,i);
}
}
}
}
【问题讨论】:
-
“我不明白为什么编译器会返回此错误”,因为编译器只是一个编译器。
-
因为它没有以return语句结束?理解你的 if-else if 可能不够聪明。写 if-else。
-
@Lundin: "if-else":我怀疑这是否有帮助,因为它可能无法预先确定
string_charat()会做什么。不过好吧,又是一场猜谜比赛。 -
如果您拥有的两个
return语句都不会发生,会发生什么情况?如果循环刚刚结束会发生什么? -
@Lundin:并非详尽无遗。当外部
else被执行时,它里面的循环并不总是执行return。