Introducción a Java

Tema 4: Estructuras de Control #4

En Java, las estructuras de control son utilizadas para determinar la secuencia de ejecución de las sentencias de un programa. A continuación, se presentan algunas de las estructuras de control más comunes:

Estructuras condicionales

  • Las estructuras condicionales permiten tomar decisiones en un programa basadas en condiciones booleanas.
  • En Java, las estructuras condicionales más comunes son el «if», el «if-else» y el «if-else-if».
  • La estructura if-else es utilizada para tomar una decisión basada en una condición. Si la condición se cumple, se ejecutan las instrucciones dentro del bloque if, de lo contrario, se ejecutan las instrucciones dentro del bloque else.
  • Ejemplo de «if»:

int edad = 20;
if (edad >= 18) {
    System.out.println("Eres mayor de edad");
}

Ejemplo de «if-else»:


int edad = 15;
if (edad >= 18) {
    System.out.println("Eres mayor de edad");
} else {
    System.out.println("Eres menor de edad");
}

Ejemplo de «if-else»:


int nota = 75;
if (nota >= 90) {
    System.out.println("A");
} else if (nota >= 80) {
    System.out.println("B");
} else if (nota >= 70) {
    System.out.println("C");
} else {
    System.out.println("D");
}

Bucles

  • Los bucles permiten repetir un bloque de código varias veces hasta que se cumple una condición específica.
  • En Java, los bucles más comunes son el «for», el «while» y el «do-while».
  • La estructura for es utilizada para ejecutar un bloque de código un número determinado de veces.
  • Ejemplo de bucle for:

for (int i = 1; i <= 5; i++) {
    System.out.println("Número: " + i);
}
  • While: La estructura while es utilizada para ejecutar un bloque de código mientras se cumpla una condición. Ejemplo:

int i = 1;
while (i <= 5) {
    System.out.println("Número: " + i);
    i++;
}
  • Do-While: La estructura do-while es utilizada para ejecutar un bloque de código mientras se cumpla una condición. Ejemplo:

int i = 1;
do {
    System.out.println("Número: " + i);
    i++;
} while (i <= 5);

Uso de break y continue:

  • La palabra clave «break» se utiliza para salir de un bucle de forma anticipada.
  • La palabra clave «continue» se utiliza para saltar a la siguiente iteración de un bucle.
  • Ejemplo de «break»:

for (int i = 1; i <= 10; i++) {
    if (i == 5) {
        break;
    }
    System.out.println("Número: " + i);
}
  • Ejemplo de «continue»:

for (int i = 1; i <= 10; i++) {
    if (i % 2 == 0) {
        continue;
    }
    System.out.println("Número impar: " + i);
}

Ejercicio

  • Imprime los números del 1 al 100 que son divisibles por 7 utilizando un bucle «for».

public class NumerosDivisiblesPor7 {
    public static void main(String[] args) {
        for (int i = 1; i <= 100; i++) {
            if (i % 7 == 0) {
                System.out.println(i);
            }
        }
    }
}

Practica 1

  • Diseña un programa que permita obtener la suma de una serie de números positivos

//Programa para obtener la suma de una serie de números positivos
import java.util.Scanner;

public class SumaSerie {
	
	public static void main (String [] args) {
		Scanner leer = new Scanner (System.in);
		System.out.println ("Introduce la cantidad de números que va a tener la serie: ");
		int numeros = leerNumeroPositivo(leer);
		int serie = calcularSerie (leer, numeros);
		System.out.println("El resultado de la suma de la serie de "+numeros+" números positivos es: "+serie);
		leer.close();
	}
	
	public static int leerNumeroPositivo(Scanner leer) {
		int n= leer.nextInt();
		while (n <= 0) {
			System.out.println("Error. El número introducido debe ser mayor que 0 ");
			System.out.println("Por favor, introduce otro número: ");
			n = leer.nextInt();
			
		}
		return n;
	}
	
	public static int calcularSerie(Scanner leer, int serie) {
		int n = 0;
		int suma = 0;
		for (int i = 0; i < serie; i++) {
			System.out.println("Introduce un número positivo: ");
			n = leerNumeroPositivo(leer);
			suma = suma +n;
		}
		return suma;
	}

}

Scanner en Java

La clase Scanner en Java es una herramienta útil para leer entrada de datos del usuario en un programa. A continuación, te presento los pasos para utilizar la clase Scanner en Java:

Importar la clase Scanner

Para utilizar la clase Scanner, debes importarla al principio de tu programa. Puedes hacerlo de la siguiente manera:

import java.util.Scanner;
 

Crear un objeto Scanner

Una vez que hayas importado la clase Scanner, debes crear un objeto Scanner. Puedes hacerlo de la siguiente manera:

Scanner scanner = new Scanner(System.in);
 

Donde System.in es el flujo de entrada estándar del sistema.

Leer datos con Scanner

Una vez que hayas creado el objeto Scanner, puedes leer datos del usuario utilizando el método nextLine()nextInt()nextDouble() u otros métodos según el tipo de dato que desees leer.

Por ejemplo, para leer un número entero, puedes utilizar el método nextInt():

int numero = scanner.nextInt();
 

Para leer un texto, puedes utilizar el método nextLine():

String texto = scanner.nextLine();

Uso de métodos

  • Los métodos se invocan utilizando el nombre del método seguido de paréntesis que contienen los parámetros necesarios.
  • Los métodos pueden ser utilizados para realizar tareas específicas, como calcular el área de un triángulo o imprimir un mensaje en la consola.
  • Los métodos pueden ser utilizados para reutilizar código y organizar el programa de manera efectiva.

En el ejemplo anterior hemos usado el método leerNumeroPositivo para asegurarnos de que el usuario introduce un numero positivo y el método calcularSerie para calcular la serie de números positivos.

Practica 2

  • Diseña un programa que calcule el área de un rectángulo siendo la altura y la base, valores proporcionados por el usuario.

import java.util.Scanner;

public class UsoRectangulo {
	
	public static double leerNumero(Scanner leer) {
		double numero;
		numero = leer.nextDouble();
		while (numero <= 0) {
			System.out.println ("Error, el número introducido debe ser mayor que 0." );
			System.out.println ("Introduce otro número: ");
			numero = leer.nextDouble();
			
		}
		return numero;
	}
	
	public static double calcularArea (double base, double altura) {
		double area = base * altura;
		return area;
	}
	
	public static void main (String [] args) {
		Scanner leer = new Scanner (System.in);
		System.out.println("Introduce la altura del rectángulo: ");
		double altura = leerNumero (leer);
		System.out.println("Introduce la base del rectángulo: ");
		double base = leerNumero (leer);
		double area = calcularArea (base, altura);
		System.out.println ("El área del rectángulo es: " + area);
		leer.close();
	}

}

Practica 3

  • Conversor de temperatura: este programa solicitará una temperatura en grados Celsius y luego convertirá esa temperatura en grados Fahrenheit.

import java.util.Scanner;

public class ConversorTemperatura {
	
	public static double solicitarTemperatura () {
		Scanner scanner = new Scanner(System.in);
		System.out.println("Introduzca una temperatura en grados Celsius: ");
		double celsius = scanner.nextDouble();
		scanner.close();
		return celsius;
	}
	
	public static double convertirCelsiusAFahrenheit(double celsius) {
        return (celsius * 9 / 5) + 32;
    }
	
	public static void main (String [] args) {
		double temperatura = solicitarTemperatura();
		double resultado = convertirCelsiusAFahrenheit (temperatura);
		System.out.println("La temperatura en grados Fahrenheit es: " + resultado);
		
		
	}

}