2015-12-08 35 views
-1

我正在嘗試設置船上的字段,但有些東西是不正確的與我的代碼。它說錯誤:表達式的非法啓動公共最終靜態int = schlachtschiff

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(""); 
    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

你覺得呢'public'和'static'的影響將是一個方法內聲明的變量? – resueman

+0

另一個提示:所有的'public final static int'變量都應該聲明爲類變量。 – CubeJockey

+0

或者將它們保存在主要方法中,但刪除'public'和'static'。 – gonzo

回答

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] == '#') 
+0

@resueman,'攻擊者'是'char [] []' –

+0

是的,注意到我的錯誤發佈後立即:P誤讀'''爲''' – resueman

+0

爲什麼投票? – StackFlowed