Java 两段代码之间的区别是什么?

Java 两段代码之间的区别是什么?,java,Java,我正在尝试做一个井字游戏,但我不知道如何更改数组 如果我这样做,它不会改变我的数组,但是如果我把I替换成a,把j替换成b(在这里是System.out.print(matrice[a][b]+“|”);它会从一个空格变成一个X,我不知道为什么 package joc; import java.util.Scanner; public class jocxo { public static char[][] matrice = new char[3][3]; public s

我正在尝试做一个井字游戏,但我不知道如何更改数组

如果我这样做,它不会改变我的数组,但是如果我把I替换成a,把j替换成b(在这里是System.out.print(matrice[a][b]+“|”);它会从一个空格变成一个X,我不知道为什么

package joc;
import java.util.Scanner;
public class jocxo {



    public static char[][] matrice = new char[3][3];
    public static Scanner Int = new Scanner(System.in);
    public static int a;
    public static int b;



    public static void main(String[] args){
        board();
        game();
    }

    public static void board()
    {
        for(int i = 0; i<3; i++){
            System.out.println();
            for(int j=0; j<3; j++){
                matrice[i][j] ='_';
                if ( j==0 )
                    System.out.print("|");


                System.out.print(matrice[i][j] + "|");

            }
        }               
     }
    public static void game(){

        a = Int.nextInt() - 1; 
        b = Int.nextInt() - 1; 
        if (matrice[a][b] == '_') 
        {   
            matrice[a][b] ='X';     
            board();


        }
    }

    }
package-joc;
导入java.util.Scanner;
公开课{
公共静态字符[][]矩阵=新字符[3][3];
公共静态扫描仪Int=新扫描仪(System.in);
公共静态INTA;
公共静态int b;
公共静态void main(字符串[]args){
董事会();
游戏();
}
公共静态无效委员会()
{

对于(int i=0;i您在获得输入后再次调用
board()
。 查看
board()
正在做什么

matrice[i][j] = '_';
您正在将
matrice[a][b]
设置为
X
。之后,您可以使用board功能打印电路板。但由于您也使用它来初始化电路板,因此您基本上是在重置阵列,使其仅包含

您应该创建一个类似于
initizalize()
的方法,您的代码可以如下所示

public static void main(String[] args) {
    initialize();
    board();
    game();
}

public static void board() {
    for (int i = 0; i < 3; i++) {
        System.out.println();
        for (int j = 0; j < 3; j++) {
            if (j == 0)
                System.out.print("|");
            System.out.print(matrice[i][j] + "|");
        }
    }
}

private static void initialize() {
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            matrice[i][j] = '_';
        }
    }
}

public static void game() {
    a = Int.nextInt() - 1;
    b = Int.nextInt() - 1;
    if (matrice[a][b] == '_') {
        matrice[a][b] = 'X';
        board();
    }
}
publicstaticvoidmain(字符串[]args){
初始化();
董事会();
游戏();
}
公共静态无效委员会(){
对于(int i=0;i<3;i++){
System.out.println();
对于(int j=0;j<3;j++){
如果(j==0)
系统输出打印(“|”);
系统输出打印(矩阵[i][j]+“|”);
}
}
}
私有静态void initialize(){
对于(int i=0;i<3;i++){
对于(int j=0;j<3;j++){
矩阵[i][j]='';
}
}
}
公共静态无效游戏(){
a=Int.nextInt()-1;
b=Int.nextInt()-1;
if(矩阵[a][b]=''.'){
矩阵[a][b]='X';
董事会();
}
}

收到输入后,您再次调用
board()
。 查看
board()
正在做什么

matrice[i][j] = '_';
您正在将
matrice[a][b]
设置为
X
。之后,您可以使用board功能打印电路板。但由于您也使用它来初始化电路板,因此您基本上是在重置阵列,使其仅包含

您应该创建一个类似于
initizalize()
的方法,您的代码可以如下所示

public static void main(String[] args) {
    initialize();
    board();
    game();
}

public static void board() {
    for (int i = 0; i < 3; i++) {
        System.out.println();
        for (int j = 0; j < 3; j++) {
            if (j == 0)
                System.out.print("|");
            System.out.print(matrice[i][j] + "|");
        }
    }
}

private static void initialize() {
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            matrice[i][j] = '_';
        }
    }
}

public static void game() {
    a = Int.nextInt() - 1;
    b = Int.nextInt() - 1;
    if (matrice[a][b] == '_') {
        matrice[a][b] = 'X';
        board();
    }
}
publicstaticvoidmain(字符串[]args){
初始化();
董事会();
游戏();
}
公共静态无效委员会(){
对于(int i=0;i<3;i++){
System.out.println();
对于(int j=0;j<3;j++){
如果(j==0)
系统输出打印(“|”);
系统输出打印(矩阵[i][j]+“|”);
}
}
}
私有静态void initialize(){
对于(int i=0;i<3;i++){
对于(int j=0;j<3;j++){
矩阵[i][j]='';
}
}
}
公共静态无效游戏(){
a=Int.nextInt()-1;
b=Int.nextInt()-1;
if(矩阵[a][b]=''.'){
矩阵[a][b]='X';
董事会();
}
}
公共静态字符[][]矩阵=新字符[3][3];
公共静态扫描仪Int=新扫描仪(System.in);
公共静态INTA;
公共静态int b;
公共静态void main(字符串[]args){
initBoard();
游戏();
显示板();
}
公共静态无效initBoard(){
对于(inti=0;i
publicstaticchar[]matrice=newchar[3][3];
公共静态扫描仪Int=新扫描仪(System.in);
公共静态INTA;
公共静态int b;
公共静态void main(字符串[]args){
initBoard();
游戏();
显示板();
}
公共静态无效initBoard(){

对于(int i=0;i您再次调用初始化数组的板…更改了代码并发布了它您再次调用初始化数组的板…更改了代码并发布了它