C# 数组函数中的错误“;并非所有代码路径都返回一个值";? 公共静态int[]twoSum(int[]arr,int-target) { 对于(int i=0;i
我已经编写了一个函数,但它给了我一个错误,说“并非所有代码路径都返回值”2次,我真的不明白问题在哪里,请帮助我解决这个问题。我真的很难解决这个错误。您忘了返回循环外的内容:C# 数组函数中的错误“;并非所有代码路径都返回一个值";? 公共静态int[]twoSum(int[]arr,int-target) { 对于(int i=0;i,c#,C#,我已经编写了一个函数,但它给了我一个错误,说“并非所有代码路径都返回值”2次,我真的不明白问题在哪里,请帮助我解决这个问题。我真的很难解决这个错误。您忘了返回循环外的内容: public static int[] twoSum(int[] arr, int target) { for ( int i = 0; i < arr.Length; i++ ) { for ( int j = i + 1; j < arr.Length; j++ ) { i
public static int[] twoSum(int[] arr, int target)
{
for ( int i = 0; i < arr.Length; i++ )
{
for ( int j = i + 1; j < arr.Length; j++ )
{
if ( ( arr[i] + arr[j] ) == target )
{
return new int[] { i, j };
}
}
}
}
公共静态int[]twoSum(int[]arr,int-target)
{
对于(int i=0;i
实际上,在
的情况下,如果条件从未满足,则该方法需要返回一个thing、null
、一个空数组new int[0]
或您想要的内容,因为循环中的子句return
从未到达。错误意味着所有路径(如果-否则,在for/while之后会发生什么)应该返回某些内容(与声明的返回类型匹配)
在您的情况下,您只需要在末尾返回:
public static int[] twoSum(int[] arr, int target)
{
for ( int i = 0; i < arr.Length; i++ )
for ( int j = i + 1; j < arr.Length; j++ )
if ( ( arr[i] + arr[j] ) == target )
return new int[] { i, j };
return null;
}
公共静态int[]twoSum(int[]arr,int-target)
{
对于(int i=0;i
考虑一下在任何情况下(arr[i]+arr[j])==target
会发生什么。是的,我现在明白了,问题是只有当满足if条件时,它才会返回。但是如果if语句不满足,那么就没有什么可返回的,因为我的函数在任何情况下都需要返回某些东西,这就是发生错误的原因。我是对的吗?是的,我现在明白了,问题是只有当if条件满足时,它才会返回。但是如果if语句不满足,那么就没有什么可返回的,因为我的函数在任何情况下都需要返回某些东西,这就是发生错误的原因。我说得对吗?是的,就是这样。
public static int[] twoSum( int[] arr, int target)
{
for (int i = 0; i < arr.Length; i++)
{
for (int j = i + 1; j < arr.Length; j++)
{
if ((arr[i] + arr[j]) == target)
{
return new int[] {i , j};
}
}
}
return null;
}