📥 Lección 6: Recibiendo datos con Scanner
en Java
Hasta ahora tu programa ha hablado con el usuario, pero… ¿y si quieres que el usuario también te diga algo?
Para eso usamos una herramienta llamada Scanner
. Es como decirle a Java:
"Oye, escucha lo que escriba el usuario en el teclado".
📦 ¿Cómo usamos Scanner?
Primero hay que "desbloquearlo" con una línea especial al inicio del programa:
import java.util.Scanner;
Esto le dice a Java: "voy a usar la caja Scanner que ya viene incluida en tus herramientas".
🧠 ¿Qué es esto?
Scanner entrada = new Scanner(System.in);
Scanner
→ el tipo de herramientaentrada
→ el nombre que tú le das (puedes ponerleteclado
,lector
, etc.)new
→ crea una nueva cajitaSystem.in
→ significa “lo que el usuario escribe con el teclado”
Es como decir: “Voy a crear una caja llamada entrada que lea lo que el usuario escriba”.
Atribución a la imágen de Enrique García Hernández http://puntocomnoesunlenguaje.blogspot.com.es
✏️ Código completo: pedir el nombre
import java.util.Scanner; public class Bienvenida { public static void main(String[] args) { Scanner entrada = new Scanner(System.in); System.out.print("¿Cómo te llamas?: "); String nombre = entrada.nextLine(); System.out.println("¡Hola " + nombre + "! Bienvenido a Java. 😎"); } }
🧠 nextLine()
sirve para leer todo lo que el usuario escriba hasta que presione Enter.
☝️ Importante: recuerda siempre cerrar el scanner si ya no lo usarás más.
Eso se hace con: entrada.close();
(opcional en programas cortos, pero buena práctica).
🧪 Mini práctica: ¿Qué edad tienes?
Cambia el programa para que también le pregunte al usuario cuántos años tiene, y luego imprima esto:
¡Hola Carlos! Tienes 20 años.
Tip: necesitas una variable tipo int
y usar entrada.nextInt()
para leer números.
🛠️ Tip extra: cada tipo de dato tiene su forma de entrada
📥 Cuando usas Scanner
para leer datos, tienes que usar el método correcto dependiendo del tipo de variable.
✔️ Aquí tienes los más comunes:
entrada.nextLine();
→ Para texto completo (String)entrada.nextInt();
→ Para números enteros (int)entrada.nextDouble();
→ Para decimales grandes (double)entrada.nextFloat();
→ Para decimales más pequeños (float)entrada.next().charAt(0);
→ Para un solo carácter (char)
💡 ¿Qué pasa si usas el tipo incorrecto?
Imagina que declaras un número entero (int
) y le metes un número decimal…
¡Boom! Error en tiempo de ejecución. 😵
int edad = entrada.nextInt(); // Bien edad = entrada.nextFloat(); // ❌ Error: float en variable int
🎯 Regla de oro
🧠 Usa el tipo de variable según lo que quieras almacenar:
- ¿Texto? Usa
String
ynextLine()
- ¿Un número entero? Usa
int
ynextInt()
- ¿Un número decimal? Usa
double
ofloat
- ¿Una letra? Usa
char
ynext().charAt(0)
🎯 Elegir el tipo correcto te ahorra errores y hace tu programa más rápido y fácil de leer.