Как я могу избавиться от следующего выделенного вывода?

#java

#java

Вопрос:

Вот мой код

 while(true)
                {
                // Taking input from the user 
                System.out.print(myBoard.getCurrentPlayer() " player: ");
                System.out.print("Enter row and column numbers:");
                int row = cin.nextInt()-1;
                int col = cin.nextInt()-1;
                // Checking if input is valid or not
                if(myBoard.setRowCol(row,col))
                break;
                
                               
                else
                System.out.println("Incorrect cell. Try again!");
                System.out.print("Enter row and column numbers:");
                               
                                
                }

          
 

Затем это выводит

 x player: Enter row and column numbers:Incorrect cell. Try again!
Enter row and column numbers:***x player: Enter row and column numbers:***Current Board
 

Я хочу избавиться от той части, которую я выделил курсивом и выделил жирным шрифтом. Любая помощь приветствуется.

Комментарии:

1. от чего именно вы хотите избавиться? Избавьтесь от всего кода, если он не подходит должным образом then , напишите хороший, else сохраните его и запустите while(true) в конце цикла

2. java != javascript

Ответ №1:

Если я понял, чего вы хотели, я думаю, что ваша проблема связана с тем, что текст печатается еще один раз.

Чтобы исправить это, просто выньте первые две строки из цикла. Для этого измените свой код на следующий:

 System.out.print(myBoard.getCurrentPlayer() " player: ");
System.out.print("Enter row and column numbers:");

while(true) {
   // Taking input from the user 
   int row = cin.nextInt()-1;
   int col = cin.nextInt()-1;

   // Checking if input is valid or not
   if(myBoard.setRowCol(row,col))
      break;
                             
   else System.out.println("Incorrect cell. Try again!");

   System.out.print("Enter row and column numbers:");                         
   }
 

Приведенный выше блок кода выведет надпись «Введите номера строк и столбцов:» независимо от того, были ли введенные данные действительными или нет. Однако, если вы хотите распечатать его только тогда, когда входные данные недопустимы, используйте следующее:

 else {
   System.out.println("Incorrect cell. Try again!");
   System.out.println("Enter row and column numbers:");
}
 

Надеюсь, это вам поможет.
Также небольшой совет; попробуйте просмотреть свой код на предмет таких простых проблем в будущем, вы в конечном итоге найдете, в чем проблема, и в большинстве (если не во всех) случаев решите ее, всегда ищите и тестируйте, и публикуйте только тогда, когда вам действительно нужно.

Комментарии:

1. Большое вам спасибо, это был мой первый урок программирования, я все еще учусь