【问题标题】:Print boolean input in a 2d array using for loop使用 for 循环在二维数组中打印布尔输入
【发布时间】:2018-07-19 03:31:06
【问题描述】:

我有一个任务,我需要创建一个 3x5 数组并要求用户输入布尔值。然后我需要将用户输入打印到数组的每个单元格中。我被困在如何使用 for 循环将用户输入输入到数组中。我也必须使用方法来做到这一点。到目前为止我的代码是:

import java.util.*;

public class TrueFalse
{
    static Scanner console = new Scanner(System.in);
    public static void main(String[] args)
    {
        boolean myA[][] = new boolean [5][3];
        popArray(myA);
    }

    public static void popArray(boolean answ, boolean pArray[][])
    {
        System.out.println("Enter true or false.");
        answ = console.nextBoolean();

        for (int i=0; i<pArray.length; i++)
        {
            pArray[i] = answ;
        }
    }
}

【问题讨论】:

  • 您是否遇到任何错误?如果有,它们是什么?

标签: java arrays boolean


【解决方案1】:

您的代码离您不远了。尝试在 popArray 方法中迭代数组的边界:

public static void popArray(boolean pArray[][]) {
    for (int r=0; r < pArray.length; ++r) {
        for (int c=0; c < pArray[0].length; ++c) {
            System.out.println("Enter true or false.");
            boolean answ = console.nextBoolean();
            pArray[r][c] = answ;
        }
    }
}

打印二维数组的一个方便选项是Arrays.deepToString(),例如

System.out.println(Arrays.deepToString(pArray));

【讨论】:

  • 如何打印数组?
  • @RyanAsciutto 使用Arrays.deepToString(),至少这是一个简单的选择。
  • 我会把它放在“main”方法中吗?调用方法“popArray”怎么样?这是我必须做的事情。
  • 它给了我输出,它要求用户输入真假,但是当我输入一个时,它只是不断循环它并一次又一次地询问它。 ""输入真或假。假 输入真或假。真 输入真或假。真""
  • @RyanAsciutto 我认为我们已经为您提供了足够的帮助。看看您自己是否无法弄清楚其余部分。
【解决方案2】:

在您的代码中,您有一个二维数组,但您没有正确评估它。您可以将二维数组可视化为 5 行 3 列的矩阵。因此,要评估每个位置,您需要指定行号和列号。您的代码应如下所示:

private static int ROWS= 5;
private static int COLUMNS = 3;
static Scanner console = new Scanner(System.in);

public static void main(String[] args)
{
    boolean myA[][] = new boolean [ROWS][COLUMNS];
    popArray(myA);
}

public static void popArray(boolean answ, boolean pArray[][])
{
    System.out.println("Enter true or false.");

    for (int i=0; i<COLUMNS ; i++)
    {
        for (int j=0; j<ROWS; j++)
        {
            pArray[i][j] = console.nextBoolean();
        }

    }
}

【讨论】:

    【解决方案3】:

    要制作 3*5 的布尔数组,你应该这样做

     boolean myA[][] = new boolean [3][5];
    

    并进行嵌套循环。您可以将值索引到数组变量 myA[ i ][ j ]

    for(int i=0;i<3;i++){
    
     for(int j=0;j<5;j++){
        myA[i][j]=false;
      }
    
    }
    

    【讨论】:

      【解决方案4】:

      离你不远了:

      for (int i=0; i<pArray.length; i++) {
          for (int j=0; i<pArray[i].length; j++) {
              System.out.println("Enter true or false.");
              pArray[i][j] = console.nextBoolean();
          }
      }
      

      会成功的。请注意,您定义了一个 5 行 3 列的矩阵,与您在文本中所写的相反。另请注意,我在这里没有检查任何内容。

      【讨论】:

        猜你喜欢
        • 2013-08-02
        • 2015-06-12
        • 1970-01-01
        • 2012-11-26
        • 1970-01-01
        • 2020-12-03
        • 1970-01-01
        • 2021-11-13
        • 1970-01-01
        相关资源
        最近更新 更多