java общедоступная статическая и приватная статическая
Ниже приведен код, который я пытаюсь скомпилировать. Кажется, у меня проблемы с использованием метода внутри метода и я не могу закрыть первый метод. Таким образом, не удалось скомпилировать программу. Кроме того, я не уверен, что Stringbuilder, который я применил, правильный или нет, так как я не могу скомпилировать.
import javax.swing.JOptionPane;
public class tryingtoedit{
public static void main( String[] args ){
int block[][] = new int[gridsize][gridsize];
int row = 0; // The variable assigned for counting rows
int column = 0; // The variable assigned for counting columns
int blockRow,blockColumn;
int score = 0;
final int gridsize = 3;
String inputRow, inputColumn;
//random a set of number
int randomSet[] = new int[100];
for(int i=0;i<randomSet.length;i++){
randomSet[i] = (int) (Math.random() * gridsize * gridsize) + 1;
}
int round = 0 ;//for counting the round of the game
while( true ){
++round;
//print out the title and score
System.out.println( "-------------------------" );
System.out.println( "Divided by 10 - Mini Game" );
System.out.printf( "---- Score:%8d ----\n\n", score );
//show game board
StringBuilder sb = new StringBuilder();
for (int i = 0; i < gridsize; i++) {
sb.append(String.format("%4d", i));
}
//display the coming value
System.out.printf( "Coming value : %d > %d > %d \n\n", randomSet[round], randomSet[(round + 1)], randomSet[(round + 2)] );
//check over checking
private static final boolean isComplete(int[][] grid) {
for (int row = 0; row < grid.length; row++) {
for (int col = 0; col < grid[row].length; col++) {
if (grid[row][col] == 0) {
return false;
}
}
}
return true; // all celss have values.
}
System.out.println( "------ Game Over ------" );
//continue check
if(isComplete(block)){
int ContinueCheck = JOptionPane.showConfirmDialog(null, "Do you want to continue ?", "Continue?", JOptionPane.YES_NO_OPTION);
if( ContinueCheck == JOptionPane.YES_OPTION){
//initialize the game board
for(row=0;row<block.length;row++)
for(column=0;column<block.length;column++)
block[row][column]=0;
continue;
}else{if(ContinueCheck == JOptionPane.NO_OPTION){
System.out.println( "-------------------------" );
System.out.println("Good Bye !");
break;}
}
}
//input value
while(true){
inputRow = JOptionPane.showInputDialog( "The number of row you want to put the number" );
blockRow = Integer.parseInt(inputRow);
inputColumn = JOptionPane.showInputDialog( "The number of column you want to put the number" );
blockColumn = Integer.parseInt(inputColumn);
if(blockRow>=block.length || blockRow<0 || blockColumn>=block.length || blockColumn<0){
JOptionPane.showMessageDialog(null , "The block you want to enter the number does not exist." , "Error" , JOptionPane.ERROR_MESSAGE );
continue;
}else{
if(block[blockRow][blockColumn]!=0){
JOptionPane.showMessageDialog(null , "The block you want to enter the number has been entered an number." , "Error" , JOptionPane.ERROR_MESSAGE );
continue;
}else{
block[blockRow][blockColumn] = randomSet[round];
break;
}
}
}
//score got check
int modSumBlock[] = new int[gridsize + gridsize + 2]; // rows, columns, and diagonals
for (int row = 0; row < gridsize; row++) {
modSumBlock[ 0 + row] = getRowScore(block, row);
}
for (int col = 0; col < gridsize; col++) {
modSumBlock[gridsize + col] = getColumnScore(block, col);
}
modSumBlock[gridsize + gridsize] = getSlashDiagonalScore(block);
modSumBlock[gridsize + gridsize + 1] = getBackslashDiagonalScore(block);
//all 'if' is used for checking if all block in the same row/column/diagonal are filled in number
//counting how many score got and where should be cleared by 8bit (in decimal)
int scoreCount = 0;
for(int n=0;n<8;n++){
if(modSumBlock[n]==0){
score += 10;
scoreCount += (int) Math.pow(2,n);
}else{
continue;
}
}
//start clear game board
if(scoreCount>=128){
block[0][2] = 0;
block[1][1] = 0;
block[2][0] = 0;
scoreCount -= 128;
}
if(scoreCount>=64){
block[0][0] = 0;
block[1][1] = 0;
block[2][2] = 0;
scoreCount -= 64;
}
if(scoreCount>=32){
block[0][2] = 0;
block[1][2] = 0;
block[2][2] = 0;
scoreCount -= 32;
}
if(scoreCount>=16){
block[0][1] = 0;
block[1][1] = 0;
block[2][1] = 0;
scoreCount -= 16;
}
if(scoreCount>=8){
block[0][0] = 0;
block[1][0] = 0;
block[2][0] = 0;
scoreCount -= 8;
}
if(scoreCount>=4){
block[2][0] = 0;
block[2][1] = 0;
block[2][2] = 0;
scoreCount -= 4;
}
if(scoreCount>=2){
block[1][0] = 0;
block[1][1] = 0;
block[1][2] = 0;
scoreCount -= 2;
}
if(scoreCount>=1){
block[0][0] = 0;
block[0][1] = 0;
block[0][2] = 0;
scoreCount -= 1;
}
}
}
}
Сообщение об ошибке я получаю
tryingtoedit.java:42: error: illegal start of expression
private static final boolean isComplete(int[][] grid) {
^
tryingtoedit.java:42: error: illegal start of expression
private static final boolean isComplete(int[][] grid) {
^
tryingtoedit.java:42: error: ';' expected
private static final boolean isComplete(int[][] grid) {
^
tryingtoedit.java:42: error: ';' expected
private static final boolean isComplete(int[][] grid) {
^
tryingtoedit.java:42: error: ';' expected
private static final boolean isComplete(int[][] grid) {
^
5 errors
Tool completed with exit code 1
1 ответ
Решение
Вам не хватает скобок и / или они неуместны. Проверьте свой код еще раз.
Например, ваш isComplete
Метод находится внутри цикла while main
метод.
Это помогает, если вы используете правильный отступ, чтобы выяснить, где вам нужно поместить скобки.