¿Cómo puedo solucionar este error de oración lógica sin excepciones?

Introducción

El código que voy a presentar ahora es parte de un ciclo para un juego. Tengo problemas con el manejo de errores (no a través de excepciones) .

Problema

La siguiente función toma 4 variables int (row_1, col_1, row_2, col_2)que deben verificarse si son menores que (size-1).

La razón detrás es que estamos trabajando con una matriz y el rango es from 0 to (size-1).

Entonces, si el usuario ingresa menos de 0 o más de (tamaño-1), debería solicitar nuevamente una entrada

Código

 public static void gameLoop()
{
    //While you still play (true) or if (false) -> end game
    showMatrix(gameMatrix);//Cheat
    while(play == true)
        {
            showMatrix(displayMatrix);
            System.out.println("--------------------");
            System.out.println("Input first row and col press enter between inputs");
            System.out.print("First row: ");
                row_1 = scan.nextInt();
            System.out.print("First column: ");
                col_1 = scan.nextInt();
            System.out.println("Input second row and col press enter between inputs");
            System.out.print("Second row: ");
                row_2 = scan.nextInt();
            System.out.print("Second column: ");
                col_2 = scan.nextInt();

                if (row_1 == row_2 && col_1 == col_2)
                {
                    System.out.println("I tested this!");
                    showMatrix(displayMatrix);
                    System.out.println("--------------------");
                    System.out.println("[ERROR] Input not valid! Try again");
                    System.out.println("Input first row and col press enter between inputs");
                    System.out.print("First row: ");
                        row_1 = scan.nextInt();
                    System.out.print("First column: ");
                        col_1 = scan.nextInt();
                    System.out.println("Input second row and col press enter between inputs");
                    System.out.print("Second row: ");
                        row_2 = scan.nextInt();
                    System.out.print("Second column: ");
                        col_2 = scan.nextInt();
                }
                else if ((row_1 > size || row_1 < 0) && (row_2 > size || row_2 < 0) && (col_1 > size || col_2 < 0) && ((col_2 > size || col_2 < 0)))     
                {
                    System.out.println("I tested that!");
                    showMatrix(displayMatrix);
                    System.out.println("--------------------");
                    System.out.println("[ERROR] Input not valid! Try again");
                    System.out.println("Input first row and col press enter between inputs");
                    System.out.print("First row: ");
                        row_1 = scan.nextInt();
                    System.out.print("First column: ");
                        col_1 = scan.nextInt();
                    System.out.println("Input second row and col press enter between inputs");
                    System.out.print("Second row: ");
                        row_2 = scan.nextInt();
                    System.out.print("Second column: ");
                        col_2 = scan.nextInt();
                }


            Turn(row_1, col_1, row_2, col_2, gameMatrix);
            check = checkEndgame(gameMatrix, displayMatrix);

                if(check == false)
                {
                    System.out.println("Would you like to play again? Y/N");
                        game_option = scan.next();

                        if ("Y".equals(game_option) || "y".equals(game_option))
                        {
                            createGame();
                            gameLoop();
                        }     
                        else if ("N".equals(game_option) || "n".equals(game_option))
                        {
                            play = false;
                        }
                }


        }
}

Parte del código con el problema.

if (row_1 == row_2 && col_1 == col_2){}

else if ((row_1 > size || row_1 < 0) && (row_2 > size || row_2 < 0) && (col_1 > size || col_2 < 0) && ((col_2 > size || col_2 < 0))){}

Pregunta

No entiendo dónde me equivoqué con esta lógica después de probar números que deberían desencadenarla.

Notas

  • No dude en juzgar el código y ayudarme con el diseño o el manejo de errores.
  • Esos System.out.println("I tested that!"); && System.out.println("I tested this!");son stdout de depuración.
Respuesta 1

¿Hay alguna manera de preguntar programáticamente a c3p0 cuántas de sus conexiones se están utilizando, o tal vez registra cuando el grupo está agotado?

Estoy tratando de obtener datos de fila de mi Jtable usando for loop pero está dando la última fila. Debajo de una muestra de mi código: String item = null; Cadena cantidad = nulo; Precio de cadena = nulo; para (int i = 0; i <...

Hace unas semanas en el trabajo, me hice cargo de una aplicación web de back-end basada en Java escrita con Eclipse. La naturaleza de la aplicación es que no se puede probar adecuadamente localmente, y en cambio los cambios necesitan ...

En C # tenemos la opción de especificar una propiedad de un objeto utilizando selectores de propiedades (por ejemplo, cuando se usa LINQ) de la siguiente manera: var usernames = clients.Where (x => x.Age> 20). Seleccione (x => x. ...