java - 尝试使用二维数组和用户输入来设置大小来创建单词搜索?

标签 java multidimensional-array

我试图让用户输入单词搜索谜题的大小,但每当我运行该程序时,我都会收到数组越界错误。例如,假设我输入 10,那么谜题将是 10 x 10 单词搜索。我对编程相当陌生,想使用对象和实例实例变量来创建它。

import java.util.Scanner;

public class Puzzle {


private char [][] myPuzzle;// creating my object



 public static void main(String[] args) {
     Puzzle myPuzzle = new Puzzle(); // creating an instance of my puzzle object
     myPuzzle.puzzleSize();

 }

 public char[][] puzzleSize(){
     Scanner keyboard = new Scanner(System.in);
     System.out.println("Hi, What would you like your puzzle size to be?");
     int puzzleSize = keyboard.nextInt();    
     int row = puzzleSize;
     int col = puzzleSize;
     char[][] puzzle= new char [row][col];

      for(int i=0;i<puzzle.length;row++){ // creating the puzzle size

        for(int o=0;o<puzzle.length;col++){
            System.out.print(puzzle[row][col]);
        }
        System.out.println("");
    }

     return puzzle;
  }
}

最佳答案

  for(int i=0;i<puzzle.length;row++){ // creating the puzzle size

    for(int o=0;o<puzzle.length;col++){
        System.out.print(puzzle[row][col]);
    }
    System.out.println("");
  }

这里有几个问题。

您的每个 for 循环都没有正确构建。让我们看一下您的第一个循环:

for(int i=0;i<puzzle.length;row++){

您的目的是在循环的每次传递中增加整数 i,直到 i 是数组的长度。您实际上要做的是设置 i=0,并且对于每次传递,增加行整数,导致循环无限期地继续。通过以下更改修复此问题:

for(int i=0;i<puzzle.length;i++){

您对第二个循环执行相同的操作。构建 for 循环时将 col++ 更改为 o++。

第二个循环的另一个问题是您正在检查 puzzle.length 作为最大长度的参数。您想要在给定第一个循环中 i 的值的情况下检查数组第二维的长度,以获取第一维的每个值:

for(int o=0;o<puzzle[i].length;o++){

既然循环正常工作,您需要修复打印值以正确打印每个当前数组元素的值:

System.out.print(puzzle[i][o]);

而不是使用 row 和 col,它们仅在创建数组期间使用来指示数组大小。

另请记住,分配两个额外的整数 row 和 col 是多余的,因为您已经将 puzzleSize 分配给了所需的值:

char[][] puzzle = new char[puzzleSize][puzzleSize]

希望这有帮助。

关于java - 尝试使用二维数组和用户输入来设置大小来创建单词搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34140343/

相关文章:

c++ - 如何使用模板制作 3D 对象的打印版本? (c++)

arrays - 类型安全的矩形多维数组类型

c - "void foo(int q[][4]){}"中的 q 是什么类型?使用 "void foo(int q[6][4]){}"与前者有何不同?

java - 在构造函数中使用重写方法的替代方法,Java

java - 使用 Flying Saucer 和 CSS 进行分段页数统计

Java Swing GUI 在重新聚焦时卡住

java - 在java中快速将字符串转换为xml

java - IdentityHashMap 返回的值不正确 - 为什么?

ios - JSON 到多维数组

java - 二维阵列中所有岛之间的最大总和是多少?必须使用递归