Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在二维数组中更改元素_Java_Arrays - Fatal编程技术网

Java 在二维数组中更改元素

Java 在二维数组中更改元素,java,arrays,Java,Arrays,我想做的是生成一个15x15平方的“-”并接受一个用户输入坐标,然后将“-”替换为“x”。目前我的程序只是打印一条垂直的“-”行 import java.util.*; 公共生活类游戏 { 公共静态void main(字符串[]args) { int[][]董事会名单=新的int[15][15]; Scanner myScanner=新扫描仪(System.in); 布尔完成=假; 做 { System.out.println(“1-添加一个正在\n 2-显示当前板\n 3-显示下一代\n 4-

我想做的是生成一个15x15平方的“-”并接受一个用户输入坐标,然后将“-”替换为“x”。目前我的程序只是打印一条垂直的“-”行

import java.util.*;
公共生活类游戏
{
公共静态void main(字符串[]args)
{
int[][]董事会名单=新的int[15][15];
Scanner myScanner=新扫描仪(System.in);
布尔完成=假;
做
{
System.out.println(“1-添加一个正在\n 2-显示当前板\n 3-显示下一代\n 4-清除板\n 5-添加预加载模式\n 6-退出”);
int choice=Integer.parseInt(myScanner.nextLine());
如果(选项==1)
{
System.out.print(“输入x坐标:”);
字符串answer=myScanner.nextLine();
int xCoordinate=Integer.parseInt(答案);
System.out.print(“输入y坐标:”);
字符串answer2=myScanner.nextLine();
int yCoordinate=Integer.parseInt(answer2);
对于(int i=0;i<15;i++)
{
对于(int j=0;j<15;j++)
{
if(xCoordinate==i)
{
if(yCoordinate==j)
{
System.out.printf(“x”,董事会名单[i][j]);
}
}
其他的
System.out.printf(“-”,董事会名单[i][j]);
System.out.println();
}
}
}
}
}
}

如果我理解得很好,您需要一个用“-”初始化的二维数组,您可以这样做

int[][] boardList = new int[15][15];

for (int row = 0; row < 15; row ++)
    for (int col = 0; col < 15; col++)
        boardList[row][col] = '-';

给你,这个很有效。。。您需要输入
System.out.println()外部内部循环以及put

if(xCoordinate == i){
  if(yCoordinate == j){
有一个条件

 public static void main(String[] args) {
            int[][] boardList = new int[15][15];
            Scanner myScanner = new Scanner(System.in);
            boolean done = true;
            do {
                System.out
                        .println("1 - Add a being \n 2 - Show current board \n 3 - Show next generation \n 4 - Clear board \n 5 - Add preload pattern \n 6 - Exit");
                int choice = Integer.parseInt(myScanner.nextLine());
                if (choice == 1) {
                    System.out.print("Enter the x coordinate: ");
                    String answer = myScanner.nextLine();
                    int xCoordinate = Integer.parseInt(answer);
                    System.out.print("Enter the y coordinate: ");
                    String answer2 = myScanner.nextLine();
                    int yCoordinate = Integer.parseInt(answer2);
                    for (int i = 0; i < 15; i++) {
                        for (int j = 0; j < 15; j++) {
                            if (xCoordinate == i && yCoordinate == j) {
                                System.out.printf("x", boardList[i][j]);
                            } else
                                System.out.printf("-", boardList[i][j]);
                        }
                        System.out.println();
                    }
                }
            } while (done);

        }
publicstaticvoidmain(字符串[]args){
int[][]董事会名单=新的int[15][15];
Scanner myScanner=新扫描仪(System.in);
布尔完成=真;
做{
系统输出
.println(“1-添加一个正在\n 2-显示当前板\n 3-显示下一代\n 4-清除板\n 5-添加预加载模式\n 6-退出”);
int choice=Integer.parseInt(myScanner.nextLine());
如果(选项==1){
System.out.print(“输入x坐标:”);
字符串answer=myScanner.nextLine();
int xCoordinate=Integer.parseInt(答案);
System.out.print(“输入y坐标:”);
字符串answer2=myScanner.nextLine();
int yCoordinate=Integer.parseInt(answer2);
对于(int i=0;i<15;i++){
对于(int j=0;j<15;j++){
如果(xCoordinate==i&&yccoordinate==j){
System.out.printf(“x”,董事会名单[i][j]);
}否则
System.out.printf(“-”,董事会名单[i][j]);
}
System.out.println();
}
}
}当(完成)时;
}
//编辑注意,我将
done
更改为true,只是为了演示它的工作原理…

您可以尝试以下代码:

import java.util.Scanner;


public class StackOverflow 
{
    public static void main(String[] args)
    {
        int[][] boardList = new int[15][15];
        Scanner myScanner = new Scanner(System.in);
        boolean done = false;
        System.out.println("1 - Add a being \n 2 - Show current board \n 3 - Show next generation \n 4 - Clear board \n 5 - Add preload pattern \n 6 - Exit");
        int choice = Integer.parseInt(myScanner.nextLine());
        if (choice == 1)
        {
            System.out.print("Enter the x coordinate: ");
            String answer = myScanner.nextLine();
            int xCoordinate = Integer.parseInt(answer);
            System.out.print("Enter the y coordinate: ");
            String answer2 = myScanner.nextLine();
            int yCoordinate = Integer.parseInt(answer2);
            for(int i = 0; i < 15; i++)
            {
                for(int j = 0; j < 15; j++)
                {
                    if(xCoordinate == i)
                    {
                        if(yCoordinate == j)
                        {
                            System.out.printf("x", boardList[i][j]);
                        }
                        else
                        {
                            System.out.printf("-", boardList[i][j]);
                        }
                    }
                    else
                    {
                        System.out.printf("-", boardList[i][j]);
                    }

                }
                System.out.println();
            }
        }
    }
}
import java.util.Scanner;
公共类堆栈溢出
{
公共静态void main(字符串[]args)
{
int[][]董事会名单=新的int[15][15];
Scanner myScanner=新扫描仪(System.in);
布尔完成=假;
System.out.println(“1-添加一个正在\n 2-显示当前板\n 3-显示下一代\n 4-清除板\n 5-添加预加载模式\n 6-退出”);
int choice=Integer.parseInt(myScanner.nextLine());
如果(选项==1)
{
System.out.print(“输入x坐标:”);
字符串answer=myScanner.nextLine();
int xCoordinate=Integer.parseInt(答案);
System.out.print(“输入y坐标:”);
字符串answer2=myScanner.nextLine();
int yCoordinate=Integer.parseInt(answer2);
对于(int i=0;i<15;i++)
{
对于(int j=0;j<15;j++)
{
if(xCoordinate==i)
{
if(yCoordinate==j)
{
System.out.printf(“x”,董事会名单[i][j]);
}
其他的
{
System.out.printf(“-”,董事会名单[i][j]);
}
}
其他的
{
System.out.printf(“-”,董事会名单[i][j]);
}
}
System.out.println();
}
}
}
}
试试这个

for(int i = 0; i < 15; i++)
{
    for(int j = 0; j < 15; j++)
    {
        if(xCoordinate == i && yCoordinate==j)
            System.out.printf("x", boardList[i][j]);
        else
            System.out.printf("-", boardList[i][j]);
    }
    System.out.println();
}
for(int i=0;i<15;i++)
{
对于(int j=0;j<15;j++)
{
如果(xCoordinate==i&&yccoordinate==j)
System.out.printf(“x”,董事会名单[i][j]);
其他的
System.out.printf(“-”,董事会名单[i][j]);
}
System.out.println();
}

您需要先打印完整行后再打印新行

您对
System.out.printf(“x”,boardList[i][j])的理解是什么
.where是do循环的while。我使用
System.out.printf
让它更早地打印出来,而不尝试在其中添加坐标。而do循环的while在我的选择6的后面是down。我觉得没有必要添加它,因为它与错误无关。您似乎混淆了用于为
boardlist
赋值的代码和用于打印
boardlist
的代码。我的方式
import java.util.Scanner;


public class StackOverflow 
{
    public static void main(String[] args)
    {
        int[][] boardList = new int[15][15];
        Scanner myScanner = new Scanner(System.in);
        boolean done = false;
        System.out.println("1 - Add a being \n 2 - Show current board \n 3 - Show next generation \n 4 - Clear board \n 5 - Add preload pattern \n 6 - Exit");
        int choice = Integer.parseInt(myScanner.nextLine());
        if (choice == 1)
        {
            System.out.print("Enter the x coordinate: ");
            String answer = myScanner.nextLine();
            int xCoordinate = Integer.parseInt(answer);
            System.out.print("Enter the y coordinate: ");
            String answer2 = myScanner.nextLine();
            int yCoordinate = Integer.parseInt(answer2);
            for(int i = 0; i < 15; i++)
            {
                for(int j = 0; j < 15; j++)
                {
                    if(xCoordinate == i)
                    {
                        if(yCoordinate == j)
                        {
                            System.out.printf("x", boardList[i][j]);
                        }
                        else
                        {
                            System.out.printf("-", boardList[i][j]);
                        }
                    }
                    else
                    {
                        System.out.printf("-", boardList[i][j]);
                    }

                }
                System.out.println();
            }
        }
    }
}
for(int i = 0; i < 15; i++)
{
    for(int j = 0; j < 15; j++)
    {
        if(xCoordinate == i && yCoordinate==j)
            System.out.printf("x", boardList[i][j]);
        else
            System.out.printf("-", boardList[i][j]);
    }
    System.out.println();
}