错误:public final static int = schlachtschiff的非法表达式启动

时间:2015-12-08 20:33:05

标签: java

我正在尝试在一个字段上设置船只,但我的代码有些不对劲。它说

illegal start of expression

代表public final static int= schlachtschiff

我想防止无效输入。我使用了一些while循环,但我不确定是否涵盖了它。

但首先我需要让程序运行。

public class setship{

static char[][] attacker = {
    { '.', '.', '.', '.', '.', '.', '.', '.', '.', '.' },
    { '.', '.', '.', '.', '.', '.', '.', '.', '.', '.' },
    { '.', '.', '.', '.', '.', '.', '.', '.', '.', '.' },
    { '.', '.', '.', '.', '.', '.', '.', '.', '.', '.' },
    { '.', '.', '.', '.', '.', '.', '.', '.', '.', '.' },
    { '.', '.', '.', '.', '.', '.', '.', '.', '.', '.' },
    { '.', '.', '.', '.', '.', '.', '.', '.', '.', '.' },
    { '.', '.', '.', '.', '.', '.', '.', '.', '.', '.' },
    { '.', '.', '.', '.', '.', '.', '.', '.', '.', '.' },
    { '.', '.', '.', '.', '.', '.', '.', '.', '.', '.' }
};

public static void print(char[][] grid) {
    System.out.println(" 0123456789");
    String[] myArray = new String[]{"A", "B", "C", "D", "E",
                                    "F", "G", "H", "I", "J"};
    for (int i = 0; i < myArray.length; i++) {
        System.out.print(myArray[i]);
        for (int j=0; j<10; j+=1) {
            System.out.print(grid[i][j]);
            if(j == 9) {
                System.out.println();
            }
        }
        System.out.println();
    }
}

public static void main(String[] args){
    Scanner s = new Scanner(System.in);
    System.out.println("Where do you want to place your ship?");
    int row, col;
    public final static int  schlachtschiff = 1 ;
    //public final static in = 2;
    //public final static in  Zerstoerer = 3;
    //public final static in  Uboote = 4;
    while(col<0 & col>10 && row<0 & row>10){
        System.out.print("Try again.");
        row = s.nextInt();
        col = s.nextInt();
        while (attacker[row][col]= '#'){
             System.out.print("Try again.Already an ship there.");
             row = s.nextInt();
             col = s.nextInt();
        }
    }

    for(schlachtschiff=1; schlachtschiff != 0; schlachtschiff++){      
        System.out.println("Col: ");
        col = s.nextInt();
        System.out.println("row: ");
        row  = s.nextInt();
        String position;
        System.out.println("Position (l),(r),(o), (u): ");                                      
        position = s.next();
          if(position.equals("l")){
            for(int i =0; i<5; i++){
                attacker[row-i][col] = '#';
            }
        }
        else if(position.equals("r")){
            for(int i =0; i<5; i++){
                attacker[row+i][col] = '#';
            }
        }
        else if(position.equals("o")){
            for(int i =0; i<5; i++){
                attacker[row][col+i] = '#';
            }
        }
        else if(position.equals("u")) {
            for(int i =0; i<5; i++){
                attacker[row][col-i] = '#' ;
            }
        }
        else{

            return;
        }
        print(attacker);
    }
}

1 个答案:

答案 0 :(得分:0)

您无法在方法中执行此操作。它需要是班级

public final static int  schlachtschiff = 1 ;
//public final static in = 2;
//public final static in  Zerstoerer = 3;
//public final static in  Uboote = 4;

或者你可以做到

int  schlachtschiff = 1;

如果需要在方法中。

 while (attacker[row][col]= '#')

这不是你比较的方式

 while (attacker[row][col] == '#')