return方法找不到符号[关闭]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了return方法找不到符号[关闭]相关的知识,希望对你有一定的参考价值。

public static int rowSum(int[][] d)
{
    for (int i = 0; i < d.length; i++)
    {
        int  sum = 0;
        for (int j = 0; j < d[i].length; j++)
        {
            sum = sum + d[i][j];
        }
    }
    return sum;
}
// says cant find symbol "sum"
答案

是的,你试图使用你在一个无效的范围内定义的变量......

public static int rowSum(int[][] d)
{

  for (int i = 0; i < d.length; i++)
  {
     int  sum = 0;      //definition
     for (int j = 0; j < d[i].length; j++)
     {
        sum = sum + d[i][j];
     }
  } //scope of sum variable ends here

  return sum; //not valid access!!! sum is not defined here.
}   

把它放在外面一圈:

public static int rowSum(int[][] d)
{
  int  sum = 0;      //definition
  for (int i = 0; i < d.length; i++)
  {
     for (int j = 0; j < d[i].length; j++)
     {
        sum = sum + d[i][j];
     }
  }    
  return sum; //not valid access!!!
}   //scope of sum ends here

但是你还有另外一个问题......你给一个整数添加了两个值......我不确定你是否想要那个,即使你需要得到一个整数,我还要把它们作为双精度加入,并返回一个整数。 ..

另一答案
public static int rowSum(int[][] d) {
for (int i = 0; i < d.length; i++)
{
int  sum = 0;
 for (int j = 0; j < d[i].length; j++)
 {
    sum = sum + d[i][j];
 }
}return sum;
}

您在外部for循环块中定义了sun变量,并在该块之外访问它,您应该在循环开始之前初始化它

另一答案

是的,因为ppeterka66说你必须改变变量的范围。由于块变量对其块可见。所以你需要在main方法中定义sum。

public static int rowSum(int[][] d)
{

    int sum = 0;

    for ( int i = 0; i < d.length; i++)
    {
        for (int j = 0; j < d[i].length; j++)
        {
            sum = sum + d[i][j];
        }
    }
    return sum;
}

以上是关于return方法找不到符号[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin:找不到符号类片段或其他 android 类

Java编译错误:找不到符号[关闭]

Clang - 链接时“找不到符号”

在 android studio 中找不到符号错误

学习java,找不到符号

找不到符号“DirImp1”[关闭]