Truco cool para simplificar if

😎 Truco cool para simplificar if

En este tutorial les voy a enseñar una técnica muy cool para simplificar declaraciones.

Empecemos declarando una variable llamada income y la ponemos en 120,000.

En Java podemos usar un underscore para que el número sea más legible:

int income = 120_000;

💰 Regla: “alto ingreso”

Queremos esto:

  • Si income > 100_000alto_ingreso = true
  • Si no → alto_ingreso = false

Parece fácil… pero cuidado con esto 👇

❌ Error típico: declarar la variable dentro del if

public class Main{
    public static void main(String[] args){
        int income = 120_000;

        if (income > 100_000) {
            boolean alto_ingreso = true;
        }

        System.out.println(alto_ingreso); // ERROR
    }
}

✅ Compila la condición… ❌ Pero falla al imprimir: no existe alto_ingreso aquí.

🧠 ¿Por qué pasa eso? (Scope)

Las variables declaradas dentro de un bloque { ... } solo existen dentro de ese bloque.

A eso le llamamos scope (alcance).

📌 alto_ingreso está “encerrada” dentro del if, entonces afuera no se puede usar.

✅ Solución 1: declararla afuera

La declaramos antes del if y luego la asignamos:

public class Main{
    public static void main(String[] args){
        int income = 120_000;
        boolean alto_ingreso;

        if (income > 100_000)
            alto_ingreso = true;
        else
            alto_ingreso = false;

        System.out.println(alto_ingreso);
    }
}

Funciona… pero se ve muy amateur 😅

✅ Mejora 1: valor inicial (adiós else)

Podemos arrancar con false y solo cambiar si se cumple la condición:

public class Main{
    public static void main(String[] args){
        int income = 120_000;
        boolean alto_ingreso = false;

        if (income > 100_000)
            alto_ingreso = true;

        System.out.println(alto_ingreso);
    }
}

✅ Ya no necesitamos el else Pero todavía… se puede simplificar más.

✨ La forma pro: asignar directamente la expresión booleana

Aquí viene lo cool:

En lugar de escribir el if, asignamos directamente la condición:

public class Main{
    public static void main(String[] args){
        int income = 120_000;
        boolean alto_ingreso = income > 100_000;
        System.out.println(alto_ingreso);
    }
}

🎯 Si income > 100_000 es true, la variable queda true. Si no, queda false.

Sin if. Limpio. Profesional.

✅ Más claro aún con paréntesis

Técnicamente no los necesitas… pero a veces los paréntesis hacen el código más legible.

public class Main{
    public static void main(String[] args){
        int income = 120_000;
        boolean alto_ingreso = (income > 100_000);
        System.out.println(alto_ingreso);
    }
}

📌 Ahora es súper obvio que lo de la derecha es una expresión booleana.

🔥 Resumen rápido

  • Variables dentro de {} solo existen dentro del bloque (scope)
  • Evita:
if (...) alto_ingreso = true; else alto_ingreso = false;
  • Prefiere:
boolean alto_ingreso = (income > 100_000);