【问题标题】:How to pass variables with 2 2D Arrays in Java?如何在 Java 中使用 2 个二维数组传递变量?
【发布时间】:2017-09-23 01:47:21
【问题描述】:

我在将数组传递给我的方法时遇到问题,它收到“找不到符号”的错误,但我对如何在方法“多少”中传递这些二维数组感到困惑这个程序应该提示输入 18整数并放入 2 个二维数组中,然后返回它们是否相等。我应该将数组名称放在boolean equalOrNot = howmany(FirstArray, SecondArray); 还是什么?

import java.util.Scanner;
public class n01092281
{
    public static void main (String[] args) 
   {
      Scanner input = new Scanner (System.in);

      int FirstArray [][] = new int[3][3];
      int SecondArray [][] = new int[3][3];

      System.out.print("Enter List1 and List2 (18 numbers): ");
      for (int row = 0; row < FirstArray.length; row++)
      {
          for(int column = 0; column < FirstArray[row].length; column++)
          {
              FirstArray[row][column] = input.nextInt();
          }
      }
      for (int row = 0; row < SecondArray.length; row++)
      {
          for(int column = 0; column < SecondArray[row].length; column++)
          {
              SecondArray[row][column] = input.nextInt();
          }
      }        
      boolean equalOrNot = howmany(FirstArray, SecondArray);   
         if (equalOrNot)
        {
            System.out.println("Two Arrays Are Equal");
        }
        else
        {
            System.out.println("Two Arrays Are Not equal");
        }  



   }   
   public class strict 
   { 
      public boolean howmany(int[][] FirstArray, int[][] SecondArray)
      {
         boolean equalOrNot = true;

        if(FirstArray.length == SecondArray.length)
        {
            for (int i = 0; i < FirstArray.length; i++)
            {
                if(FirstArray[i] != SecondArray[i])
                {
                    equalOrNot = false;
                }
            }
        }
        else
        {
            equalOrNot = false;
        }




      }   
     }

  }

【问题讨论】:

  • 方法在哪里?对它的呼唤在哪里?这些和类一样吗?如果“否”,您为什么认为可以使用简单的howmany(...) 调用该方法? if(FirstArray[i] != SecondArray[i])也错了
  • 是的,他们属于不同的班级。我不能调用其他类的项目吗?
  • 您可以在不输入电话号码的情况下给某人打电话吗?您没有指定从哪个类调用该方法,因此这显然不起作用。
  • so howmany(FirstArray, SecondArray);应该是 strict.howman(FirstArray, SecondArray); ?

标签: java multidimensional-array parameter-passing


【解决方案1】:

对共享代码有帮助的几点:

  1. 请遵循更好的命名约定。

  2. public boolean howmany 没有返回语句,实际上return 是一个布尔值,可能在方法的末尾添加:

    return equalOrNot;
    
  3. 比较也应该超过数组的列数,条件应该有点像:

    if(FirstArray[i][j] != SecondArray[i][j])
    
  4. 即使考虑到 Strict 是一个内部类(带有那些不适当匹配的大括号),您当前也不能从静态上下文调用 howmany 方法。

【讨论】:

  • 感谢您的输入,正确的称呼方式是什么?
  • @JayDoe 创建您的类strict 的实例并使用它来调用方法。
猜你喜欢
  • 2011-04-10
  • 2016-05-29
  • 2016-09-06
  • 2021-08-31
  • 2010-12-12
  • 2015-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多