private int OtherScoreVal(string a , string q)
{
string A = AnswerToDisplay(a);
string Q = AnswerToDisplay(q);
char[] ma = A.ToCharArray();
char[] mq = Q.ToCharArray();
int count = 0;
char[] recount = { }; if (a == "")
{
return 0;
} if (ma.Length > mq.Length)
{
return 0;
} for (int i = 0; i < ma.Length; i++)
{
for (int j = 0; j < mq.Length; j++)
{
if (ma[i] == mq[j])
{
A = A.Remove(A.IndexOf(mq[j]), 1);
break;
}
}
} for (int i = 0; i < mq.Length; i++)
{
for (int j = 0; j < ma.Length; j++)
{
if (mq[i] == ma[j])
{
Q = Q.Remove(Q.IndexOf(ma[j]), 1);
break;
}
}
if (A.Length == 0 && Q.Length == 0)
return 1; if ((A.Length != 0 && Q.Length != 0) || (A.Length == 0 && Q.Length != 0))
return 0; if (A.Length != 0 && Q.Length == 0)
{
int length = 0;
length = ma.Length - A.Length;
return length; if (length == mq.Length)
{
return length;
}
}
return 0;
}
}
}报错显示并非所有的代码路径都返回值。。但是我设置了的啊
{
string A = AnswerToDisplay(a);
string Q = AnswerToDisplay(q);
char[] ma = A.ToCharArray();
char[] mq = Q.ToCharArray();
int count = 0;
char[] recount = { }; if (a == "")
{
return 0;
} if (ma.Length > mq.Length)
{
return 0;
} for (int i = 0; i < ma.Length; i++)
{
for (int j = 0; j < mq.Length; j++)
{
if (ma[i] == mq[j])
{
A = A.Remove(A.IndexOf(mq[j]), 1);
break;
}
}
} for (int i = 0; i < mq.Length; i++)
{
for (int j = 0; j < ma.Length; j++)
{
if (mq[i] == ma[j])
{
Q = Q.Remove(Q.IndexOf(ma[j]), 1);
break;
}
}
if (A.Length == 0 && Q.Length == 0)
return 1; if ((A.Length != 0 && Q.Length != 0) || (A.Length == 0 && Q.Length != 0))
return 0; if (A.Length != 0 && Q.Length == 0)
{
int length = 0;
length = ma.Length - A.Length;
return length; if (length == mq.Length)
{
return length;
}
}
return 0;
}
}
}报错显示并非所有的代码路径都返回值。。但是我设置了的啊
{
string A = AnswerToDisplay(a);
string Q = AnswerToDisplay(q);
char[] ma = A.ToCharArray();
char[] mq = Q.ToCharArray();
int count = 0;
char[] recount = { }; if (a == "")
{
return 0;
} if (ma.Length > mq.Length)
{
return 0;
} for (int i = 0; i < ma.Length; i++)
{
for (int j = 0; j < mq.Length; j++)
{
if (ma[i] == mq[j])
{
A = A.Remove(A.IndexOf(mq[j]), 1);
break;
}
}
} for (int i = 0; i < mq.Length; i++)
{
for (int j = 0; j < ma.Length; j++)
{
if (mq[i] == ma[j])
{
Q = Q.Remove(Q.IndexOf(ma[j]), 1);
break;
}
}
if (A.Length == 0 && Q.Length == 0)
return 1; if ((A.Length != 0 && Q.Length != 0) || (A.Length == 0 && Q.Length != 0))
return 0; if (A.Length != 0 && Q.Length == 0)
{
int length = 0;
length = ma.Length - A.Length;
return length; if (length == mq.Length)
{
return length;
}
}
}
return 0; //最外层没有返回值
}
最后一个循环for (int i = 0; i < mq.Length; i++)会执行吗?无论怎么样都return 0了, 还要i++干吗?
最后一个if,写在retur之后,就不能运行了。
系统提示的很清楚,就是你的代码有可能一种情况会没有返回值。比如说前两个if不满足,第一个循环被break了,最后一个大循环mq.Length<=0了,就没有返回值了。你不是设置了一个INT的count变量吗,不要每一步都return,把每一步的return改成为count赋值,最后return count不就可以了吗