Ahora que hemos escrito nuestro primer programa en Java, es momento de entender la sintaxis básica del lenguaje. Esto incluye la estructura general de un programa, declaraciones de variables, tipos de datos, operadores, y cómo hacer comentarios en el código. Vamos a verlo con ejemplos claros.
// Archivo: SintaxisBasica.java
// Importación de bibliotecas necesarias (si las hubiera)
import java.util.Scanner;
// Declaración de la clase
public class SintaxisBasica {
// Método principal: punto de entrada del programa
public static void main(String[] args) {
// Declaración de variables y tipos de datos
int numeroEntero = 10; // Variable de tipo entero
double numeroDecimal = 5.5; // Variable de tipo decimal
char caracter = 'A'; // Variable de tipo carácter
boolean esVerdadero = true; // Variable de tipo booleano
String texto = "Hola Java"; // Variable de tipo cadena de texto
// Impresión de valores en la consola
System.out.println("Número Entero: " + numeroEntero);
System.out.println("Número Decimal: " + numeroDecimal);
System.out.println("Carácter: " + caracter);
System.out.println("Booleano: " + esVerdadero);
System.out.println("Texto: " + texto);
// Operadores aritméticos
int suma = numeroEntero + 5;
int resta = numeroEntero - 2;
int multiplicacion = numeroEntero * 3;
double division = numeroDecimal / 2;
// Impresión de resultados de operaciones aritméticas
System.out.println("Suma: " + suma);
System.out.println("Resta: " + resta);
System.out.println("Multiplicación: " + multiplicacion);
System.out.println("División: " + division);
// Comentarios en una línea
// Este es un comentario de una sola línea
/*
* Comentarios en varias líneas
* Este es un comentario que abarca varias líneas
*/
// Entrada de datos del usuario
Scanner scanner = new Scanner(System.in);
System.out.print("Introduce tu nombre: ");
String nombreUsuario = scanner.nextLine();
System.out.println("Hola, " + nombreUsuario + "!");
// Cerrando el scanner
scanner.close();
}
}
Importación de Bibliotecas:
Scanner
de la biblioteca java.util
, que se usa para la entrada de datos del usuario.Declaración de la Clase:
SintaxisBasica
. Todo el código en Java debe estar dentro de una clase.Método Principal:
Declaración de Variables y Tipos de Datos:
Impresión en la Consola:
System.out.println
para imprimir valores en la consola.Operadores Aritméticos:
Comentarios en el Código:
//
y los comentarios de varias líneas están delimitados por /*
y */
.Entrada de Datos del Usuario:
Scanner
para leer la entrada del usuario desde la consola.Cierre del Scanner:
Scanner
para liberar los recursos asociados.En Java, las variables son contenedores que almacenan datos que pueden ser utilizados y manipulados a lo largo del programa. Los tipos de datos determinan qué tipo de datos pueden ser almacenados en estas variables. Java es un lenguaje fuertemente tipado, lo que significa que cada variable debe declararse con un tipo de dato específico.
// Archivo: TiposDeDatosYVariables.java
public class TiposDeDatosYVariables {
public static void main(String[] args) {
// Tipos de datos primitivos
byte numeroByte = 127; // Número entero de 8 bits
short numeroShort = 32767; // Número entero de 16 bits
int numeroInt = 2147483647; // Número entero de 32 bits
long numeroLong = 9223372036854775807L; // Número entero de 64 bits
float numeroFloat = 3.14f; // Número de punto flotante de 32 bits
double numeroDouble = 3.141592653589793; // Número de punto flotante de 64 bits
char caracter = 'A'; // Carácter unicode de 16 bits
boolean esVerdadero = true; // Valor booleano (true o false)
// Tipos de datos no primitivos
String texto = "Hola, Java"; // Cadena de texto (clase String)
int[] numeros = {1, 2, 3, 4, 5}; // Arreglo de enteros
// Impresión de variables en la consola
System.out.println("Número Byte: " + numeroByte);
System.out.println("Número Short: " + numeroShort);
System.out.println("Número Int: " + numeroInt);
System.out.println("Número Long: " + numeroLong);
System.out.println("Número Float: " + numeroFloat);
System.out.println("Número Double: " + numeroDouble);
System.out.println("Carácter: " + caracter);
System.out.println("Booleano: " + esVerdadero);
System.out.println("Texto: " + texto);
// Impresión de los elementos del arreglo
for (int numero : numeros) {
System.out.print(numero + " ");
}
}
}
Tipos de Datos Primitivos:
Tipos de Datos No Primitivos:
Declaración y Inicialización de Variables:
Impresión de Variables en la Consola:
System.out.println
para imprimir valores en la consola, lo que ayuda a visualizar el contenido de las variables.Uso de Arreglos:
Los operadores en Java permiten realizar diversas operaciones con los valores almacenados en las variables. Existen diferentes tipos de operadores, cada uno con su propósito específico. Vamos a explorar los operadores aritméticos, lógicos, relacionales y de asignación.
// Archivo: Operadores.java
public class Operadores {
public static void main(String[] args) {
// Operadores aritméticos
int a = 10;
int b = 5;
int suma = a + b; // Suma
int resta = a - b; // Resta
int multiplicacion = a * b; // Multiplicación
int division = a / b; // División
int modulo = a % b; // Módulo (resto de la división)
// Operadores de asignación
int c = 10;
c += 5; // Equivale a c = c + 5
c -= 3; // Equivale a c = c - 3
c *= 2; // Equivale a c = c * 2
c /= 2; // Equivale a c = c / 2
c %= 3; // Equivale a c = c % 3
// Operadores relacionales
boolean igual = (a == b); // Igual a
boolean diferente = (a != b); // Diferente a
boolean mayor = (a > b); // Mayor que
boolean menor = (a < b); // Menor que
boolean mayorIgual = (a >= b);// Mayor o igual que
boolean menorIgual = (a <= b);// Menor o igual que
// Operadores lógicos
boolean verdadero = true;
boolean falso = false;
boolean and = verdadero && falso; // AND lógico
boolean or = verdadero || falso; // OR lógico
boolean not = !verdadero; // NOT lógico
// Impresión de resultados
System.out.println("Operadores Aritméticos:");
System.out.println("Suma: " + suma);
System.out.println("Resta: " + resta);
System.out.println("Multiplicación: " + multiplicacion);
System.out.println("División: " + division);
System.out.println("Módulo: " + modulo);
System.out.println("\nOperadores de Asignación:");
System.out.println("c += 5: " + c);
System.out.println("\nOperadores Relacionales:");
System.out.println("a == b: " + igual);
System.out.println("a != b: " + diferente);
System.out.println("a > b: " + mayor);
System.out.println("a < b: " + menor);
System.out.println("a >= b: " + mayorIgual);
System.out.println("a <= b: " + menorIgual);
System.out.println("\nOperadores Lógicos:");
System.out.println("verdadero && falso: " + and);
System.out.println("verdadero || falso: " + or);
System.out.println("!verdadero: " + not);
}
}
Operadores Aritméticos:
+
): Añade dos operandos.-
): Resta el segundo operando del primero.*
): Multiplica dos operandos./
): Divide el primer operando por el segundo.%
): Devuelve el resto de la división entre dos operandos.Operadores de Asignación:
=
): Asigna un valor a una variable.+=
): Suma el operando derecho al izquierdo y asigna el resultado a la variable.-=
): Resta el operando derecho del izquierdo y asigna el resultado a la variable.*=
): Multiplica el operando derecho con el izquierdo y asigna el resultado a la variable./=
): Divide el operando izquierdo por el derecho y asigna el resultado a la variable.%=
): Calcula el módulo del operando izquierdo por el derecho y asigna el resultado a la variable.Operadores Relacionales:
==
): Comprueba si dos operandos son iguales.!=
): Comprueba si dos operandos son diferentes.>
): Comprueba si el operando izquierdo es mayor que el derecho.<
): Comprueba si el operando izquierdo es menor que el derecho.>=
): Comprueba si el operando izquierdo es mayor o igual que el derecho.<=
): Comprueba si el operando izquierdo es menor o igual que el derecho.Operadores Lógicos:
&&
): Devuelve verdadero si ambos operandos son verdaderos.||
): Devuelve verdadero si al menos uno de los operandos es verdadero.!
): Invierte el valor booleano del operando.Las declaraciones condicionales en Java se utilizan para ejecutar diferentes bloques de código basados en ciertas condiciones. Las tres principales declaraciones condicionales son if
, else if
y else
.
// Archivo: DeclaracionesCondicionales.java
public class DeclaracionesCondicionales {
public static void main(String[] args) {
int numero = 10;
// Declaración if
if (numero > 0) {
System.out.println("El número es positivo.");
}
// Declaración if-else
if (numero < 0) {
System.out.println("El número es negativo.");
} else {
System.out.println("El número no es negativo.");
}
// Declaración if-else if-else
if (numero > 0) {
System.out.println("El número es positivo.");
} else if (numero < 0) {
System.out.println("El número es negativo.");
} else {
System.out.println("El número es cero.");
}
// Anidación de declaraciones if
if (numero > 0) {
System.out.println("El número es positivo.");
if (numero % 2 == 0) {
System.out.println("El número es par.");
} else {
System.out.println("El número es impar.");
}
}
}
}
Declaración if:
if
se ejecuta. En el ejemplo, si numero
es mayor que 0, se imprime «El número es positivo.»Declaración if-else:
numero
es menor que 0, se imprime «El número es negativo.» Si no, se imprime «El número no es negativo.»Declaración if-else if-else:
else if
, y así sucesivamente. Si ninguna de las condiciones es verdadera, se ejecuta el bloque else
. En el ejemplo, se verifica si numero
es mayor que 0, menor que 0 o igual a 0, imprimiendo el resultado correspondiente.Anidación de declaraciones if:
if
dentro de otras declaraciones if
. En el ejemplo, se evalúa primero si numero
es mayor que 0. Si es así, se verifica si numero
es par o impar, imprimiendo el resultado correspondiente.Las expresiones condicionales en Java permiten evaluar condiciones y tomar decisiones basadas en esas evaluaciones. La expresión condicional más común es el operador ternario (? :
), que proporciona una manera concisa de realizar una operación condicional simple.
// Archivo: ExpresionesCondicionales.java
public class ExpresionesCondicionales {
public static void main(String[] args) {
int numero = 10;
// Operador ternario (expresión condicional)
String resultado = (numero > 0) ? "El número es positivo." : "El número no es positivo.";
System.out.println(resultado);
// Ejemplo con una condición más compleja
int edad = 18;
String mensaje = (edad >= 18) ? "Eres un adulto." : "No eres un adulto.";
System.out.println(mensaje);
// Uso del operador ternario anidado
int hora = 15;
String saludo = (hora < 12) ? "Buenos días" : (hora < 18) ? "Buenas tardes" : "Buenas noches";
System.out.println(saludo);
}
}
Operador ternario (expresión condicional):
if-else
que se utiliza para asignar un valor basado en una condición. La sintaxis es condicion ? valorSiVerdadero : valorSiFalso
.resultado
se asigna con «El número es positivo.» si numero
es mayor que 0. De lo contrario, se asigna «El número no es positivo.»(numero > 0) ? "El número es positivo." : "El número no es positivo."
evalúa si numero
es mayor que 0 y, según el resultado, asigna uno de los dos valores posibles a resultado
.Condición más compleja:
mensaje
se asigna con «Eres un adulto.» si edad
es mayor o igual a 18. De lo contrario, se asigna «No eres un adulto.»Operador ternario anidado:
saludo
se asigna con un saludo diferente según la hora del día. Si hora
es menor que 12, se asigna «Buenos días». Si hora
es menor que 18, se asigna «Buenas tardes». De lo contrario, se asigna «Buenas noches».Los bucles en Java permiten ejecutar un bloque de código repetidamente mientras se cumpla una condición o hasta que se alcance un cierto criterio de terminación. Los bucles más comunes son for
, while
y do-while
.
// Archivo: Bucles.java
public class Bucles {
public static void main(String[] args) {
// Bucle for
System.out.println("Bucle for:");
for (int i = 1; i <= 5; i++) {
System.out.println("Iteración " + i);
}
// Bucle while
System.out.println("\nBucle while:");
int j = 1;
while (j <= 5) {
System.out.println("Iteración " + j);
j++;
}
// Bucle do-while
System.out.println("\nBucle do-while:");
int k = 1;
do {
System.out.println("Iteración " + k);
k++;
} while (k <= 5);
}
}
Bucle for:
for
se utiliza cuando se conoce el número exacto de iteraciones. Se compone de tres partes: la inicialización, la condición de continuación y la expresión de actualización.for
imprime «Iteración» seguido del número de iteración del 1 al 5.Bucle while:
while
se utiliza cuando no se conoce el número exacto de iteraciones de antemano. Se ejecuta siempre que la condición especificada sea verdadera.while
imprime «Iteración» seguido del número de iteración del 1 al 5.Bucle do-while:
do-while
es similar al bucle while
, pero garantiza que el bloque de código se ejecute al menos una vez, ya que la condición se evalúa después de la ejecución del bloque.do-while
imprime «Iteración» seguido del número de iteración del 1 al 5.