HOWTO · Java

Solucionar el error: Else Without if en Java

Este tutorial educa sobre el error: else sin if en Java, destaca las causas y proporciona una solución con un código de ejemplo.

En esta página

Hoy aprenderemos sobre un error que dice 'else' sin 'if' al escribir código en Java. También descubriremos las posibles razones que causan este error y encontraremos su solución.

el error: 'else' sin 'if' en Java

Por lo general, este tipo de error lo enfrentan los novatos en la programación de Java. Antes de avanzar hacia las causas y la solución de este error, escribamos un programa que produzca este error y entendámoslo.

Entonces, suponiendo que somos expertos en Python y principiantes en Java. Entonces, escribiremos el programa Java que contiene if-else de la siguiente manera.

Código de ejemplo:

// import libraries
import java.util.Scanner;

// decide future activity based on the current temperature
public class Test {
  public static void main(String[] args) {
    int temp;
    Scanner scan = new Scanner(System.in);
    System.out.println("What's the current temperature?");
    temp = scan.nextInt();

    if (temp > 95 || temp < 20)
      ;
    System.out.println("Visit our shops");
    else if (temp <= 95) if (temp >= 80) System.out.println("Swimming");
    else if (temp >= 60) if (temp <= 80) System.out.println("Tennis");
    else if (temp >= 40) if (temp < 60) System.out.println("Golf");
    else if (temp < 40) if (temp >= 20) System.out.println("Sking");
  } // end main()
} // end Test Class

Error:

arreglar otra cosa sin un error en Java - error

En este programa, obtenemos la temperatura actual del usuario y decidimos nuestra actividad futura en función de la temperatura actual. La imagen de arriba muestra que estamos recibiendo un error lógico sobre el cual NetBeans IDE informa en tiempo de compilación.

Por lo tanto, ni siquiera podemos ejecutar el código hasta que resolvamos el error. Para eso, tendremos que saber las posibles razones a continuación.

Razones para el error: 'else' sin 'if' en Java

El error en sí es explicativo, ya que dice que un compilador de Java no puede encontrar una declaración if asociada con la declaración else. Recuerde que la sentencia else no se ejecuta a menos que estén asociados con una sentencia if.

Por lo tanto, las posibles razones se enumeran a continuación.

  1. La primera razón es que olvidamos escribir el bloque if antes del bloque else.
  2. Falta el paréntesis de cierre de la condición if.
  3. Terminamos la instrucción if usando un punto y coma.

¿Cómo resolver este error? Echemos un vistazo a la siguiente sección.

Soluciona el error: 'else' sin 'if' en Java

Código de ejemplo:

// import libraries
import java.util.Scanner;

public class Test {
  public static void main(String[] args) {
    int temp;
    Scanner scan = new Scanner(System.in);
    System.out.println("What's the current temperature?");
    temp = scan.nextInt();

    if (temp > 95 || temp < 20) {
      System.out.println("Visit our shops");
    } // end if
    else if (temp <= 95) {
      if (temp >= 80) {
        System.out.println("Swimming");
      } // end if
      else if (temp >= 60) {
        if (temp <= 80) {
          System.out.println("Tennis");
        } // end if
        else if (temp >= 40) {
          if (temp < 60) {
            System.out.println("Golf");
          } // end if
          else if (temp < 40) {
            if (temp >= 20) {
              System.out.println("Sking");
            } // end if
          } // end else-if
        } // end else-if
      } // end else-if
    } // end else-if
  } // end main()
} // end Test Class

Producción :

What's the current temperature?
96
Visit our shops

Eliminamos el punto y coma (;) del final de la instrucción if y colocamos {} para cada bloque para corregir un error que dice 'else' sin 'if'.

Es mejor usar corchetes {} hasta que seamos lo suficientemente expertos y sepamos dónde podemos omitirlos (podemos omitirlos cuando tenemos una sola declaración en el bloque).