Java 在二维数组中更改元素
我想做的是生成一个15x15平方的“-”并接受一个用户输入坐标,然后将“-”替换为“x”。目前我的程序只是打印一条垂直的“-”行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-
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();
}