Java 当嵌套for循环限制在j<;之外时,为什么我的打印方法无法正确显示;1.

Java 当嵌套for循环限制在j<;之外时,为什么我的打印方法无法正确显示;1.,java,multidimensional-array,chess,Java,Multidimensional Array,Chess,我的任务是将我制作的棋盘打印到控制台上。板的顶部必须有“a”至“h”的边框,左侧垂直向下为1-8。每个首字母都应该与一个字母和一个数字对齐,因此,例如,一个black rook(“bR”)应该放在8处(并且应该在数组中初始化为[0][0])。当printBoard方法中的内部嵌套for循环限制为j时,switch语句中既没有空的情况,也没有默认情况;当j 现在,您迭代一列的行,但您希望迭代一行的列。交换数组中的i和j 如果要在内部for循环之后使用换行符,请移动 k-- 系统输出打印(“\n”+

我的任务是将我制作的棋盘打印到控制台上。板的顶部必须有“a”至“h”的边框,左侧垂直向下为1-8。每个首字母都应该与一个字母和一个数字对齐,因此,例如,一个black rook(“bR”)应该放在8处(并且应该在数组中初始化为[0][0])。当printBoard方法中的内部嵌套for循环限制为j时,switch语句中既没有空的情况,也没有默认情况;当j
  • 现在,您迭代一列的行,但您希望迭代一行的列。交换数组中的i和j

  • 如果要在内部for循环之后使用换行符,请移动

    k--

    系统输出打印(“\n”+“\n”+k)

    进入外部for循环


  • 这应该已经解决了您的问题。

    请查看正确和不正确输出的示例。请看一下
    public class Virtual_Chessboard {
    
        public enum Chessmen{
            WHITE_KING,
            WHITE_QUEEN,
            WHITE_ROOK,
            WHITE_BISHOP,
            WHITE_KNIGHT,
            WHITE_PAWN,
            BLACK_KING,
            BLACK_QUEEN,
            BLACK_ROOK,
            BLACK_BISHOP,
            BLACK_KNIGHT,
            BLACK_PAWN,
            EMPTY
        }
    
        public static Chessmen[][] chessboard = new Chessmen[8][8];
    
        public static void createBoard(){
    
    
            int rows = 8;
            int columns = 8;
    
            for(int y=0;y<rows;y++){
                for(int x=0;x<columns;x++){
                    if((y==0 && x==0) || (x==7 && y==0) ){
                        chessboard[x][y] = Chessmen.BLACK_ROOK;
                    }
                    else if((x==1 && y==0)||(x==6 && y==0)){
                        chessboard[x][y] = Chessmen.BLACK_KNIGHT;
                    }
                    else if((x==2 && y==0)||(x==5 && y==0)){
                        chessboard[x][y] = Chessmen.BLACK_BISHOP;
                    }
                    else if(x==3 && y==0){
                        chessboard[x][y] = Chessmen.BLACK_KING;
                    }
                    else if(x==4 && y==0){
                        chessboard[x][y] = Chessmen.BLACK_QUEEN;
                    }
                    else if((x==0 && y==7)||(x==7 && y==7)){
                        chessboard[x][y]= Chessmen.WHITE_ROOK;
                    }
                    else if((x==1 && y==7)||(x==6 && y==7)){
                        chessboard[x][y] = Chessmen.WHITE_KNIGHT;
                    }
                    else if((x==2 && y==7)||(x==5 && y==7)){
                        chessboard[x][y] = Chessmen.WHITE_BISHOP;
                    }
                    else if(x==3 && y==7){
                        chessboard[x][y] = Chessmen.WHITE_KING;
                    }
                    else if(x==4 && y==7){
                        chessboard[x][y] = Chessmen.WHITE_QUEEN;
                    }
                    else if(y==1){
                        chessboard[x][y] = Chessmen.BLACK_PAWN;
                    }
                    else if(y==6){
                        chessboard[x][y] = Chessmen.WHITE_PAWN;
                        }
                    else{
                        chessboard[x][y] = Chessmen.EMPTY;
                    }
                }
            }
        }
    
        public static void printBoard(Chessmen[][] chessboard){
            int k = 8;
            System.out.print("\t"+"a" + "\t" + "b" + "\t" + "c" + "\t" + "d" +  "\t" + "e"+ "\t" + "f" + "\t" + "g" + "\t" + "h" + "\n" + k);
            for(int i = 0; i<8;i++){
                for(int j = 0;j<8;j++){
                    System.out.print("\t");
                    switch(chessboard[i][j]){
                    case WHITE_KING : System.out.print("WK");
                    break;
                    case WHITE_QUEEN : System.out.print("wQ");
                    break;
                    case WHITE_ROOK : System.out.print("wR");
                    break;
                    case WHITE_BISHOP : System.out.print("wB");
                    break;
                    case WHITE_KNIGHT : System.out.print("wK");
                    break;
                    case WHITE_PAWN : System.out.print("wP");
                    break;
                    case BLACK_KING : System.out.print("BK");
                    break;
                    case BLACK_QUEEN : System.out.print("bQ");
                    break;
                    case BLACK_ROOK : System.out.print("bR");
                    break;
                    case BLACK_BISHOP : System.out.print("bB");
                    break;
                    case BLACK_KNIGHT : System.out.print("bK");
                    break;
                    case BLACK_PAWN : System.out.print("bP");
                    break;
    
                    } //switch
    
                } /// j for 
    
    
            } //i for
            k--;
            System.out.println("\n" + "\n"+k);
        }
    
        public static void main(String[] args) {
    
    
            createBoard();
            printBoard(chessboard);
    
        }
    
    }