Sintaxis de Java ejercicios — el conversor, el informe de notas y el tique del cajero, alineados al milímetro (con soluciones y chuletario)

En una práctica de laboratorio, un compañero entregó un informe que decía, muy serio: Créditos totales: 666. Tenía tres asignaturas de 6 créditos. No era una broma: había escrito "Créditos totales: " + 6 + 6 + 6 y Java, leyendo de izquierda a derecha, pegó los tres seises como texto. Lo tienes en el fragmento 2 de «¿Qué falla aquí?», con la salida real.

Ya has visto la teoría y has escrito tres programas en la práctica. Ahora te toca a ti con tres ejercicios en tres niveles, todos con lo que sabemos hasta ahora: estructura, println, printf con anchos, concatenación y secuencias de escape. Sin variables, sin if y sin bucles (llegan en los temas siguientes), así que los datos van escritos en el código. Lo difícil aquí es que la salida cuadre exactamente, carácter a carácter. Todas las salidas son reales, con Java 21 y el ordenador en español.

Cómo usar este artículo: intenta cada ejercicio por tu cuenta; si llevas más de diez minutos atascado, abre la pista; antes de mirar las soluciones, haz «¿Qué falla aquí?». Al final tienes el cuestionario tipo examen y el chuletario.

Sintaxis Java ejercicios: nivel básico

Ejercicio 1: conversor de unidades

Escribe un programa completo, Conversor.java, que convierta 5,5 km a metros, centímetros, millas y pies, con los resultados alineados: todas las etiquetas ocupan lo mismo y los números van a la derecha en 10 columnas con 2 decimales.

Fórmulas: metros = km × 1000; centímetros = km × 100 000; millas = km / 1,60934; pies = km × 3280,84.

Salida esperada:

=== CONVERSOR DE DISTANCIAS ===
Distancia: 5.5 km

--- Conversiones ---
Kilómetros:        5,50 km
Metros:         5500,00 m
Centímetros:  550000,00 cm
Millas:            3,42 mi
Pies:          18044,62 ft

%10.2f reserva 10 columnas con 2 decimales y pega el número a la derecha. Para que las etiquetas queden en columna, escríbelas con los espacios necesarios para que todas midan lo mismo («Centímetros: » es la más larga, 13 caracteres). Las cuentas pueden ir dentro del propio printf.

Sintaxis Java ejercicios: nivel intermedio

Ejercicio 2: informe de notas

Escribe InformeNotas.java, que imprima el informe de Laura con sus cinco notas en dos columnas (asignatura y nota), la media, la media sobre 100 con el símbolo % y una línea final con el número de asignaturas y los créditos (5 asignaturas de 6 créditos), calculados con +.

Notas: FP2 8,5; IC2 7,0; Álgebra 4,5; Estadística 6,0; Bases de datos 9,0.

Salida esperada:

=========================
INFORME: Laura Santana
=========================
FP2              8,50
IC2              7,00
Álgebra          4,50
Estadística      6,00
Bases de datos   9,00
-------------------------
Media            7,00
Sobre 100        70,0%
Asignaturas: 5 | Créditos: 30
=========================

El mismo formato para todas las filas, %-15s %5.2f%n, también para «Media». Para el porcentaje, %%. La media es (8,5 + 7,0 + 4,5 + 6,0 + 9,0) / 5, con paréntesis. Y cuidado con la última línea: 5 * 6 sin paréntesis sí funciona, pero piensa por qué.

Sintaxis Java ejercicios: desafío final

Ejercicio 3: el tique del cajero automático

Escribe Cajero.java, que imprima el tique de un cajero con un saldo inicial de 1000 €, un ingreso de 250 €, una retirada de 400 € y una comisión de 1,50 €. Dentro de la caja, los conceptos a la izquierda en 18 columnas y los importes a la derecha en 10, con signo en los movimientos. La caja tiene que cerrar perfecta por la derecha, y la última línea lleva una referencia entre comillas.

Salida esperada:

+---------------------------------+
|      CAJERO DE LA FACULTAD      |
+---------------------------------+
| Saldo inicial         1000,00 € |
| Ingreso               +250,00 € |
| Retirada              -400,00 € |
| Comisión                -1,50 € |
+---------------------------------+
| Saldo final            848,50 € |
+---------------------------------+
Operaciones: 3 | Ref. "FP2-2026"

El hueco %+10.2f pone siempre el signo (+250,00, -400,00). Cuenta lo que mide una fila: «| » (2) + 18 + « » (1) + 10 + « € |» (4). Los bordes tienen que medir lo mismo. Las comillas dentro del texto se escriben \".

¿Qué falla aquí?

Tres fragmentos con un fallo de los que se ven en los laboratorios. Predice qué imprime cada uno antes de leer la explicación.

Fragmento 1: el hueco equivocado

public class FormatoMal {
    public static void main(String[] args) {
        System.out.printf("Créditos: %d%n", 6);
        System.out.printf("Nota: %d%n", 7.5);
        System.out.println("Fin del informe");
    }
}

Salida:

Créditos: 6
Nota: Exception in thread "main" java.util.IllegalFormatConversionException: d != java.lang.Double
	at java.base/java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:4515)
	at java.base/java.util.Formatter$FormatSpecifier.printInteger(Formatter.java:3066)
	at java.base/java.util.Formatter$FormatSpecifier.print(Formatter.java:3021)
	at java.base/java.util.Formatter.format(Formatter.java:2791)
	at java.base/java.io.PrintStream.implFormat(PrintStream.java:1367)
	at java.base/java.io.PrintStream.format(PrintStream.java:1346)
	at java.base/java.io.PrintStream.printf(PrintStream.java:1245)
	at FormatoMal.main(FormatoMal.java:4)

Qué pasa: compila sin problemas, porque a javac le da igual qué hay dentro del texto de printf. Pero al ejecutar, %d (entero) recibe 7.5 (decimal) y Java lanza IllegalFormatConversionException: d != java.lang.Double: «el hueco d no sirve para un Double». Fíjate en que «Nota: » sí llegó a imprimirse: printf escribe hasta el hueco que falla. Y «Fin del informe» no sale nunca: la excepción para el programa. La línea útil del rastro es la última, at FormatoMal.main(FormatoMal.java:4): el fallo está en la línea 4 de tu archivo.

Arreglo: %.1f (o %.2f) para decimales; %d solo para enteros.

Fragmento 2: los 666 créditos

public class SumaTexto {
    public static void main(String[] args) {
        System.out.println("Créditos totales: " + 6 + 6 + 6);
    }
}

Salida:

Créditos totales: 666

Qué pasa: "Créditos totales: " + 6 es un texto, y texto + 6 sigue siendo texto: los tres seises se pegan. Es la anécdota del principio.

Arreglo: "Créditos totales: " + (6 + 6 + 6), o un printf("Créditos totales: %d%n", 6 + 6 + 6).

Fragmento 3: la ruta de Windows

public class Ruta {
    public static void main(String[] args) {
        System.out.println("Guardado en C:\nuevo\temas");
    }
}

Salida:

Guardado en C:
uevo	emas

Qué pasa: dentro de un texto, \n es un salto de línea y \t una tabulación. La ruta C:\nuevo\temas tiene justo esas dos parejas, así que Java imprime «C:», salta de línea, escribe «uevo», tabula y escribe «emas». Si la ruta tuviera \d o \p, que no son secuencias válidas, ni siquiera compilaría (illegal escape character).

Arreglo: doblar las barras: "C:\\nuevo\\temas".

Soluciones comentadas

Solución ejercicio 1

/** Ejercicio 1: conversor de 5,5 km a otras unidades, alineado con printf. */
public class Conversor {
    public static void main(String[] args) {
        System.out.println("=== CONVERSOR DE DISTANCIAS ===");
        System.out.println("Distancia: 5.5 km");
        System.out.println();
        System.out.println("--- Conversiones ---");
        System.out.printf("Kilómetros:  %10.2f km%n", 5.5);
        System.out.printf("Metros:      %10.2f m%n", 5.5 * 1000);       // 1 km = 1000 m
        System.out.printf("Centímetros: %10.2f cm%n", 5.5 * 100000);    // 1 km = 100 000 cm
        System.out.printf("Millas:      %10.2f mi%n", 5.5 / 1.60934);   // 1 milla = 1,60934 km
        System.out.printf("Pies:        %10.2f ft%n", 5.5 * 3280.84);   // 1 km = 3280,84 pies
    }
}

Comprobación a mano: 5,5 × 1000 = 5500; × 100 000 = 550 000; 5,5 / 1,60934 = 3,4176… → 3,42; 5,5 × 3280,84 = 18 044,62. Todas las etiquetas miden 13 caracteres («Kilómetros: » con dos espacios, «Pies: » con ocho), así que los huecos %10.2f empiezan en la misma columna y los números acaban alineados por la derecha.

¿Por qué 5.5 y no 5,5 en el código? Porque en Java los decimales se escriben siempre con punto; la coma solo aparece en la salida, por el idioma. Y fíjate en que la línea «Distancia: 5.5 km» sale con punto: es un texto, no pasa por printf.

¿Ves el 5,5 repetido cinco veces? Si mañana el dato fuera 8 km, habría que cambiarlo en cinco sitios. Eso es justo lo que resuelven las variables, el siguiente tema.

Solución ejercicio 2

/** Ejercicio 2: informe de notas con columnas alineadas y la media calculada en el printf. */
public class InformeNotas {
    public static void main(String[] args) {
        System.out.println("=========================");
        System.out.printf("INFORME: %s%n", "Laura Santana");
        System.out.println("=========================");
        System.out.printf("%-15s %5.2f%n", "FP2", 8.5);
        System.out.printf("%-15s %5.2f%n", "IC2", 7.0);
        System.out.printf("%-15s %5.2f%n", "Álgebra", 4.5);
        System.out.printf("%-15s %5.2f%n", "Estadística", 6.0);
        System.out.printf("%-15s %5.2f%n", "Bases de datos", 9.0);
        System.out.println("-------------------------");
        System.out.printf("%-15s %5.2f%n", "Media", (8.5 + 7.0 + 4.5 + 6.0 + 9.0) / 5);
        System.out.printf("%-15s %5.1f%%%n", "Sobre 100", (8.5 + 7.0 + 4.5 + 6.0 + 9.0) / 5 * 10);
        System.out.println("Asignaturas: " + 5 + " | Créditos: " + 5 * 6);
        System.out.println("=========================");
    }
}

Las decisiones:

  • Un solo formato para todas las filas (%-15s %5.2f%n), también para «Media»: así la media queda debajo de las notas.
  • «Bases de datos» tiene 14 letras y cabe en 15. Con %-10s empujaría su nota cuatro columnas a la derecha.
  • La media entre paréntesis: (8,5 + 7,0 + 4,5 + 6,0 + 9,0) / 5 = 35,0 / 5 = 7,00. Sin paréntesis, solo el 9,0 se dividiría entre 5.
  • El porcentaje: 7,0 × 10 = 70,0 con %5.1f (un decimal) y %% para el símbolo.
  • La última línea: "Créditos: " + 5 * 6 da 30 y no 56 porque * va antes que +, igual que en matemáticas: primero se multiplica (30) y después se pega. Con una suma, + 5 + 6, sí habría salido 56.

Solución ejercicio 3

/** Desafío: el tique de un cajero automático, con importes fijos (sin if ni bucles). */
public class Cajero {
    public static void main(String[] args) {
        System.out.println("+---------------------------------+");
        System.out.println("|      CAJERO DE LA FACULTAD      |");
        System.out.println("+---------------------------------+");
        System.out.printf("| %-18s %10.2f € |%n", "Saldo inicial", 1000.0);
        System.out.printf("| %-18s %+10.2f € |%n", "Ingreso", 250.0);     // %+ pone siempre el signo
        System.out.printf("| %-18s %+10.2f € |%n", "Retirada", -400.0);
        System.out.printf("| %-18s %+10.2f € |%n", "Comisión", -1.5);
        System.out.println("+---------------------------------+");
        System.out.printf("| %-18s %10.2f € |%n", "Saldo final", 1000.0 + 250.0 - 400.0 - 1.5);
        System.out.println("+---------------------------------+");
        System.out.println("Operaciones: " + 3 + " | Ref. \"FP2-" + 2026 + "\"");
    }
}
Las medidas de una fila del tiqueLa fila del ingreso se reparte en cinco trozos: barra y espacio (2), el concepto con %-18s (18), un espacio (1), el importe con %+10.2f (10) y espacio, euro, espacio y barra (4): 35 caracteres en total.printf("| %-18s %+10.2f € |%n", "Ingreso", 250.0)| "| "2Ingreso%-18s18" "1+250,00%+10.2f10 € |" € |"4Fila: 2 + 18 + 1 + 10 + 4 = 35 caracteres → el borde "+—…—+" también tiene que medir 35 (33 guiones)%+ pone el signo siempre: +250,00 y -400,00. "Saldo inicial" (13) cabe de sobra en 18.
Para que la caja cuadre, suma los anchos de cada fila y haz el borde de la misma medida.

Las decisiones:

  • Las medidas. Cada fila mide 2 + 18 + 1 + 10 + 4 = 35 caracteres, así que los bordes tienen un +, 33 guiones y otro +. El título también ocupa 35: seis espacios, «CAJERO DE LA FACULTAD» (21), seis espacios y las barras.
  • %+10.2f en los movimientos y %10.2f (sin +) en los saldos: un saldo no es un movimiento, no lleva signo.
  • El saldo final se calcula en el propio printf: 1000,0 + 250,0 − 400,0 − 1,5 = 848,50.
  • Las comillas de la referencia se escriben \" dentro del texto, y 2026 se pega como número sin paréntesis porque va detrás de un texto.
  • El € está fuera del hueco: el ancho 10 es solo para el número.

Para comprobar una caja de texto, copia la salida en un editor con fuente monoespaciada (todas las letras del mismo ancho) y mira si los | de la derecha caen en la misma columna. En la web, los bloques de salida ya usan ese tipo de fuente.

Cuestionario tipo examen

Ahora ponte a prueba como en el examen. El cuestionario de Java de FP2 es así: 15 preguntas en 15 minutos sobre todo el temario de Java, de respuesta única, múltiple (los fallos restan), verdadero o falso, huecos, relacionar, respuesta corta y «¿qué imprime este código?». Aquí tienes 11 preguntas originales sobre la sintaxis básica de Java. Contesta sin ejecutar nada, pulsa Comprobar y lee la explicación de cada una. Estas preguntas son también el banco del simulacro de teoría de FP2, que las mezclará con las de los demás temas de Java.

Pregunta 1Rellenar huecos

Completa lo mínimo que necesita un programa de Java para arrancar:

Todo el código vive dentro de una ____. La JVM empieza a ejecutar por el método public ____ void ____(String[] args). Cada bloque (de la clase, de un método, de un if) se abre y se cierra con ____.

Palabras:

  • final
  • main
  • clase
  • tabuladores
  • static
  • corchetes
  • llaves
  • función
Solución

Todo el código vive dentro de una clase. La JVM empieza a ejecutar por el método public static void main(String[] args). Cada bloque (de la clase, de un método, de un if) se abre y se cierra con llaves.

En Java no hay código suelto: hasta el «Hola, mundo» va dentro de una clase. La JVM busca exactamente public static void main(String[] args): static porque todavía no existe ningún objeto cuando arranca el programa. Y los bloques los marcan las llaves { }, no la sangría como en Python.

Pregunta 2Respuesta corta

¿Qué imprime este fragmento (dentro de main)? Escribe la salida exacta.

System.out.print("Hola");
System.out.print(" ");
System.out.println("mundo" + 1 + 2);
Solución

Respuesta: Hola mundo12

print no salta de línea, así que «Hola», el espacio y lo que viene después salen seguidos. En "mundo" + 1 + 2 el + se evalúa de izquierda a derecha: "mundo" + 1 ya es el texto "mundo1", y al sumarle 2 se pega otra vez como texto: mundo12, no mundo3.

Pregunta 3Verdadero o falso

Indica si es verdadero o falso:

  1. Java distingue mayúsculas y minúsculas: system.out.println no compila.
  2. Si una clase es public, el archivo tiene que llamarse igual que ella, con la extensión .java.
  3. Como en Python, la sangría es lo que decide qué líneas van dentro de un bloque.
  4. // comenta hasta el final de la línea y /* … */ puede ocupar varias líneas.
  5. La orden javac Hola.java ejecuta el programa y muestra su salida.
Solución
  • V — Java distingue mayúsculas y minúsculas: system.out.println no compila.
  • V — Si una clase es public, el archivo tiene que llamarse igual que ella, con la extensión .java.
  • F — Como en Python, la sangría es lo que decide qué líneas van dentro de un bloque.
  • V — // comenta hasta el final de la línea y /* … */ puede ocupar varias líneas.
  • F — La orden javac Hola.java ejecuta el programa y muestra su salida.

En Java la sangría solo sirve para leer mejor: los bloques los marcan las llaves. javac compila (traduce el .java a bytecode en un .class) y java Hola ejecuta. Y una clase public Hola tiene que estar en Hola.java, o javac protesta.

Pregunta 4Ordenar

Ordena lo que pasa desde que escribes el programa hasta que ves la salida:

  1. La JVM llama a main y aparece la salida
  2. Escribes el código en Hola.java
  3. Compilas con javac Hola.java
  4. Se genera Hola.class con el bytecode
  5. Ejecutas con java Hola
Solución

Orden correcto:

  1. Escribes el código en Hola.java
  2. Compilas con javac Hola.java
  3. Se genera Hola.class con el bytecode
  4. Ejecutas con java Hola
  5. La JVM llama a main y aparece la salida

Java se compila primero a bytecode (.class), que no depende del sistema operativo, y después la JVM lo ejecuta. Por eso se dice «escríbelo una vez, ejecútalo en cualquier sitio». Fíjate en que a java se le pasa el nombre de la clase, sin .class.

Pregunta 5Única

¿Cuál de estas cabeceras sirve para que la JVM arranque el programa?

  1. public static void main(String[] args)
  2. public static int main(String[] args)
  3. public static void Main(String[] args)
  4. public static void main(String args)
Solución

Respuesta: public static void main(String[] args)

La JVM busca el método por su nombre y su firma exactos. Cambiar el tipo de retorno, una mayúscula o el tipo del parámetro hace que el programa compile, pero al ejecutarlo salga «no se encuentra el método main». El nombre del parámetro (args, arg…) sí puede ser cualquiera.

Pregunta 6Respuesta corta

¿Qué imprime esta línea?

System.out.println(1 + 2 + "3" + 4 + 5);
Solución

Respuesta: 3345

Se evalúa de izquierda a derecha. 1 + 2 son dos números: 3. Después 3 + "3" mezcla número y texto, así que se concatena: "33". A partir de ahí todo es texto: "334" y "3345". Si quisieras sumar el 4 y el 5, tendrías que poner paréntesis: (4 + 5).

Pregunta 7Múltiple · penaliza

¿Cuáles de estas líneas compilan dentro de main?

  1. System.out.println("Hola");
  2. int x = 3; // comentario
  3. /* comentario */ System.out.println(5);
  4. System.out.println('Hola');
  5. print("Hola");
  6. System.Out.println("x");
Solución

Respuesta: System.out.println("Hola"); · int x = 3; // comentario · /* comentario */ System.out.println(5);

Los comentarios pueden ir al final de una línea (//) o en medio (/* */). Las trampas típicas al venir de Python: las comillas simples (en Java solo valen para un char), olvidar System.out. y las mayúsculas.

Pregunta 8Relacionar

Relaciona cada palabra de la cabecera de main con lo que significa:

public
static
void
String[] args

Definiciones:

  • Se puede llamar desde fuera de la clase
  • Termina la ejecución del programa
  • El método no devuelve nada
  • El método no se puede redefinir
  • Pertenece a la clase y no necesita un objeto
  • Los argumentos de la línea de órdenes
Solución
  • public → Se puede llamar desde fuera de la clase
  • static → Pertenece a la clase y no necesita un objeto
  • void → El método no devuelve nada
  • String[] args → Los argumentos de la línea de órdenes

La JVM llama a main desde fuera (public), antes de que exista ningún objeto (static), no espera ningún resultado (void) y le pasa lo que escribas después de java Programa en un array de texto (args). Lo que impide redefinir un método es final, que no aparece aquí.

Pregunta 9Única

¿Qué pasa al compilar este programa?

public class Saludo {
    public static void main(String[] args) {
        System.out.println("Hola")
    }
}
  1. No compila: javac avisa de que falta un ;
  2. Compila e imprime Hola
  3. Compila, pero falla al ejecutarlo
  4. Imprime Hola sin salto de línea
Solución

Respuesta: No compila: javac avisa de que falta un ;

En Java el punto y coma no es opcional: marca dónde acaba cada sentencia. javac da el error ';' expected y señala la línea. Es de los primeros errores que se ven al pasar de Python, donde el final de línea basta.

Pregunta 10Única

En Python escribes if x > 0: print("pos"). ¿Cuál es la versión correcta en Java?

  1. if (x > 0) { System.out.println("pos"); }
  2. if x > 0 { System.out.println("pos"); }
  3. if (x > 0): System.out.println("pos");
  4. if (x > 0) then System.out.println("pos");
Solución

Respuesta: if (x > 0) { System.out.println("pos"); }

Las tres diferencias que hay que recordar: la condición va entre paréntesis, no hay dos puntos y el bloque va entre llaves (si solo hay una sentencia se pueden omitir, pero es mejor ponerlas siempre).

Pregunta 11Respuesta corta

¿Qué extensión tiene el archivo de bytecode que genera javac?

Solución

Respuesta: .class

javac Hola.java genera Hola.class (un archivo por cada clase del código). Ese bytecode es lo que ejecuta la JVM con java Hola.

Míralo paso a paso en Python Tutor

Entra en Python Tutor, elige Java y pega esta versión corta del tique:

public class Tutor {
    public static void main(String[] args) {
        System.out.println("+-------------------------+");
        System.out.printf("| %-10s %10.2f € |%n", "Inicial", 1000.0);
        System.out.printf("| %-10s %+10.2f € |%n", "Ingreso", 250.0);
        System.out.printf("| %-10s %+10.2f € |%n", "Retirada", -400.0);
        System.out.println("+-------------------------+");
        System.out.printf("| %-10s %10.2f € |%n", "Final", 1000.0 + 250.0 - 400.0);
        System.out.println("Ref. \"FP2-" + 2026 + "\"");
    }
}

Salida:

+-------------------------+
| Inicial       1000,00 € |
| Ingreso       +250,00 € |
| Retirada      -400,00 € |
+-------------------------+
| Final          850,00 € |
Ref. "FP2-2026"

Qué observar paso a paso:

  1. La ejecución empieza en main y va línea a línea: cada printf añade una fila al panel de salida.
  2. En el primer printf, %-10s rellena «Inicial» con tres espacios hasta 10 columnas.
  3. Compara la fila del ingreso con la del saldo inicial: la única diferencia del formato es el +, y el resultado es el signo delante del 250.
  4. La cuenta 1000 + 250 − 400 se hace antes de entrar en el hueco: printf recibe ya 850.
  5. Prueba a quitar las barras de \"FP2- y vuelve a ejecutar: Python Tutor te enseñará el error de compilación.

Chuletario: sintaxis básica de Java

Lo esencial en 30 segundos: todo va dentro de public class Nombre, en Nombre.java. El programa empieza en public static void main(String[] args). Cada instrucción acaba en ; y cada bloque va entre { }. Para imprimir, println (salta), print (no salta) y printf (con huecos y %n). + pega de izquierda a derecha. Se compila con javac Nombre.java y se ejecuta con java Nombre.

Quiero…CódigoResultado
Imprimir y saltarSystem.out.println("Hola");Hola
Imprimir sin saltarSystem.out.print("Hola ");Hola (sigue en la misma línea)
Línea vacíaSystem.out.println();
Texto en un huecoprintf("%s%n", "Laura")Laura
Enteroprintf("%d%n", 6)6
Decimal con 2 cifrasprintf("%.2f%n", 7.456)7,46 (en español)
Ancho a la derecha / izquierda%10.2f / %-15sColumnas alineadas
Signo siempre%+10.2f+250,00
Ceros delante%05d00042
Un %%%%
Punto decimal forzadoprintf(java.util.Locale.US, "%.2f", 8.75)8.75
Sumar dentro de un texto"Total: " + (6 + 6)Total: 12
Comillas, barra, salto, tabulación\", \\, \n, \t

Plantillas de los ejercicios:

EjercicioPatrónResultado
ConversorEtiquetas del mismo largo + %10.2fMetros: 5500,00 m
Informe%-15s %5.2f%n en todas las filasMedia 7,00
Tique`»%-18s %+10.2f €%n»` y bordes de 35`Ingreso +250,00 €`
SíntomaCausa probable
';' expectedFalta un punto y coma (en esa línea o en la de arriba)
class X is public, should be declared in a file named X.javaEl archivo no se llama como la clase
reached end of file while parsingFalta una llave de cierre
cannot find symbolUn nombre mal escrito (printn, Sytem)
unclosed string literalUnas comillas sin cerrar
IllegalFormatConversionException al ejecutarUn hueco que no casa con el tipo (%d con un decimal)
Sale 66 en lugar de 12Una suma dentro de un texto sin paréntesis
La tabla se tuerceAnchos distintos entre filas o tabulaciones con palabras largas
Sale C: y en otra línea uevo\n dentro de una ruta: dobla las barras

Antes de entregar, pregúntate:

  1. ¿El archivo se llama exactamente como la clase pública?
  2. ¿Cada instrucción termina en ; y cada llave tiene su pareja?
  3. ¿Cada hueco de printf casa con su valor (%d enteros, %f decimales, %s textos) y la línea termina en %n?
  4. ¿Las sumas que van dentro de un texto llevan paréntesis?

El siguiente paso son las variables en Java: tipos, declaración y por qué Java te obliga a decir qué guarda cada una.

Sigue aprendiendoTodos los artículos de Java

¿Te ha servido este artículo? Así puedes apoyar SergioLearns →