Recursividad

package com.trifulcas.saludo;

public class Recursividad {
	public static void main(String[] args) {
		System.out.println(factorial(5));
		System.out.println(fibonacci(5));
		System.out.println(fibonacci(8));
	}

	// Una función recursiva es una función que se llama a sí misma
	// Factorial: multiplicación desde el 1 hasta el número
	// Factorial: N! -> N*(N-1)! 1!->1
	// factorial(5)-->5*factorial(4)
	// factorial(4)-->4*factorial(3)
	// factorial(3)-->3*factorial(2)
	// factorial(2)-->2*factorial(1)
	// factorial(1)-->1
	public static int factorial(int num) {
		if (num <= 1) {
			return 1;
		} else {
			return num * factorial(num - 1);
		}
	}
	
	/*
	 * Las reglas para definir una función recursiva son dos
	 * a) Tener un caso base, es decir habrá un momento en el que la función
	 * devuelve un valor fijo.
	 * b) Descomponer el problema en la misma función pero de valores más pequeños
	 */
	
	/*
	 * Sucesión de fibonacci. Empezamos con 1,1 y cada número es la suma de los dos anteriores
	 * 1,1,2,3,5,8,13,21,34,....
	 * Obtener el elemento N de la sucesión de fibonacci
	 * Si N es 1 o 2 --> 1
	 * El elemento N es igual a suma de fib(N-1) + fib(N-2)
	 */
	public static int fibonacci(int posicion) {
		if(posicion<=2) {
			return 1;
		} else {
			return fibonacci(posicion-1)+fibonacci(posicion-2);
		}
	}
}

Ámbito (scope) de variables

https://www.w3schools.com/java/java_scope.asp

package com.trifulcas.saludo;

public class Ambito {

	public static void main(String[] args) {
		// x está definida para todo el bloque, incluyendo subbloques
		int x=0;
		
		for(int i=0;i<10;i++) {
			// i y nombre sólo están definidas dentro de este bloque
			String nombre="Juan";
			System.out.println(i);
			System.out.println(nombre);
			System.out.println(x);
		}
		// x existe
		System.out.println(x);
		// Pero i y nombre no porque se ha cerrado el bloque en el que
		// estaban definidas
		System.out.println(i);
		System.out.println(nombre);

	}

}

Ejercicios arrays

Cread un programa que nos pida 5 números, los almacene en un array y después nos pida un número y nos diga cuantos valores del array son mayores o iguales a ese número.

Cread un programa que nos pida seis nombres de alumnos y los guarde en un array. Después nos pedirá un nombre y nos dirá si ese nombre está en el array o no.

Cread un programa que cree un array bidimensional de 3×3 y que nos ponga el valor 1 en la diagonal principal:
1 0 0
0 1 0
0 0 1

Con el programa que ya hay en trifulcas de las notas y los alumnos que nos pida los datos y luego nos diga cual es la nota máxima de todos los alumnos y qué alumno lo tiene.

package com.trifulcas.saludo;

import java.util.Scanner;

public class Ejercicio4 {

	public static void main(String[] args) {
		int[] numeros = new int[5];
		Scanner in = new Scanner(System.in);
		for (int i = 0; i < 5; i++) {
			System.out.println("Introduce el número " + (i + 1));
			numeros[i]=in.nextInt();
		}
		System.out.println("Introduce el número a comprobar");
		int numero=in.nextInt();
		int cont=0;
		for(int i=0;i<numeros.length;i++) {
			if(numeros[i]>=numero) {
				cont++;
			}
		}
		System.out.println("Hay "+cont+" numeros mayores o iguales que "+numero);
		System.out.println("Hay "+mayores(numeros,numero)+" numeros mayores o iguales que "+numero);
		in.close();
	}
	
	public static int mayores(int[] numeros, int numero) {
		int cont=0;
		for(int n:numeros) {
			if (n>=numero) {
				cont++;
			}
		}
		return cont;
	}

}

package com.trifulcas.saludo;

import java.util.Scanner;

public class Ejercicio4b {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);

		int[] numeros=pedirNumeros(5,in);
		int numero=pedirNumero(in);
		System.out.println("Hay "+mayores(numeros,numero)+" mayores que "+numero);
		in.close();
	}
	
	public static int[] pedirNumeros(int tam,Scanner in) {
		int[] numeros=new int[tam];
		for (int i = 0; i < 5; i++) {
			System.out.println("Introduce el número " + (i + 1));
			numeros[i]=in.nextInt();
		}
		return numeros;
	}
	public static int pedirNumero(Scanner in) {
		System.out.println("Introduce el número ");
		int numero=in.nextInt();
		
		return numero;
	}
	public static int mayores(int[] numeros, int numero) {
		int cont=0;
		for(int n:numeros) {
			if (n>=numero) {
				cont++;
			}
		}
		return cont;
	}
}

package com.trifulcas.saludo;

import java.util.Scanner;

public class Ejercicio5 {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		String[] alumnos = new String[6];
		for (int i = 0; i < 6; i++) {
			System.out.println("Introduce el alumno " + (i + 1));
			alumnos[i] = in.nextLine();
		}
		System.out.println("Introduce el alumno a buscar");
		String alumno = in.nextLine();
		boolean esta = false;
		for (String el : alumnos) {
			// Para comparar dos strings
			if (alumno.equals(el)) {
				esta = true;
			}
		}
		System.out.println("El alumno "+alumno+(esta?"":" no ")+" está en la lista");
		in.close();
	}

}

package com.trifulcas.saludo;

public class Ejercicio6 {

	public static void main(String[] args) {
		int[][] tabla = new int[3][3];

		// Recorrer todo el array bidimensional
		// Y cuando se cumpla la condición poner un 1
		for (int i = 0; i < 3; i++) {
			for (int j = 0; j < 3; j++) {
				if (i == j) {
					tabla[i][j] = 1;
				}
			}
		}

		for (int i = 0; i < 3; i++) {
			tabla[i][i] = 1;
		}
		int[][] otra=diagonal(5);
		mostrar(otra);
	}
	public static int[][] diagonal(int tam){
		int[][] tabla=new int[tam][tam];
		for (int i = 0; i < tam; i++) {
			tabla[i][i] = 1;
		}
		return tabla;
	}
	static void mostrar(int[][] tabla) {
		// Es otro bucle anidado porque tengo dos dimensiones
		for (int i = 0; i < tabla.length; i++) {
			for (int j = 0; j < tabla[i].length; j++) {
				System.out.print(tabla[i][j] + " | ");
			}
			System.out.println();
		}
	}
}

package com.trifulcas.saludo;

import java.util.Scanner;

public class Ejercicio7 {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		// Pido el número de alumnos (alto de mi tabla multidimensional)
		System.out.println("Introduce el número de alumnos");
		int alumnos = in.nextInt();
		// Pido el número de notas (ancho de mi tabla multidimensional)
		System.out.println("Introduce el número de notas por alumno");
		int numero = in.nextInt();
		// Creo un array multidimensional con los datos que me han dado
		int[][] notas = new int[alumnos][numero];

		// Para pedir los datos tengo que usar un bucle anidado
		// El primero (i) es de los alumnos
		// El segundo (j) es de las notas
		// La combinación (i,j) son las coordenadas de mi array bidimensional
		for (int i = 0; i < alumnos; i++) {
			System.out.println("Introduce las notas del alumno " + (i + 1));
			for (int j = 0; j < numero; j++) {
				System.out.println("Introduce la nota " + (j + 1));
				// Guardo la nota en la coordenada adecuada
				notas[i][j] = in.nextInt();

			}
		}
		mostrar(notas);
		int mayor = notas[0][0]; // Esto es una triquiñuela para evitar coger mínimos como el '0'
		int alumno = 0;
		for (int i = 0; i < alumnos; i++) {
			for (int j = 0; j < numero; j++) {
				if (mayor < notas[i][j]) {
					mayor = notas[i][j];
					alumno=i;
				}
			}
		}
		System.out.println("La nota más alta es " + mayor+" y es del alumno "+(alumno+1));
	}

	static void mostrar(int[][] tabla) {
		// Es otro bucle anidado porque tengo dos dimensiones
		for (int i = 0; i < tabla.length; i++) {
			for (int j = 0; j < tabla[i].length; j++) {
				System.out.print(tabla[i][j] + " | ");
			}
			System.out.println();
		}
	}
}

Ojo: Los arrays se pasan como referencia

https://books.trinket.io/thinkjava2/chapter7.html#sec89

package com.trifulcas.saludo;

public class Referencia {

	public static void main(String[] args) {
		int[] num= {1,2,3,4};
		mostrar(num);
		int[] doble=doble(num);
		mostrar(doble);
		mostrar(num);
		doble[0]=27;
		mostrar(num);
		int[] otroDoble=dobleOk(num);
		mostrar(num);
		mostrar(otroDoble);
		
	}
	static int[] doble(int[] tabla) {
		for(int i=0;i<tabla.length;i++) {
			tabla[i]*=2;
		}
		return tabla;
	}
	static int[] dobleOk(int[] tabla) {
		int[] copia=new int[tabla.length];
		for(int i=0;i<tabla.length;i++) {
			copia[i]=tabla[i]*2;
		}
		return copia;
	}
	static void mostrar(int[] tabla) {
		for(int elemento:tabla) {
			System.out.println(elemento);
		}
	}
}

Ejemplos

Pedir un tamaño y pedir el número de notras


	public static void main(String[] args) {
		
		Scanner in = new Scanner(System.in);
		System.out.println("Introduce el tamaño");
		int tam=in.nextInt();
		int[] notas=new int[tam];
		for(int i=0;i<tam;i++) {
			System.out.println("Introduce la nota "+(i+1));
			notas[i]=in.nextInt();
		}
		mostrar(notas);
	}
	static void mostrar(int[] tabla) {
		for(int el:tabla) {
			System.out.print(el+" | ");
		}
		System.out.println();
	}

Nos piden refactorizarlo para que sean alumnos y notas:


package com.trifulcas.saludo;

import java.util.Scanner;

public class EjemploMulti {

	public static void main(String[] args) {

		Scanner in = new Scanner(System.in);
		// Pido el número de alumnos (alto de mi tabla multidimensional)
		System.out.println("Introduce el número de alumnos");
		int alumnos = in.nextInt();
		// Pido el número de notas (ancho de mi tabla multidimensional)
		System.out.println("Introduce el número de notas por alumno");
		int numero = in.nextInt();
		// Creo un array multidimensional con los datos que me han dado
		int[][] notas = new int[alumnos][numero];
		
		// Para pedir los datos tengo que usar un bucle anidado
		// El primero (i) es de los alumnos
		// El segundo (j) es de las notas
		// La combinación (i,j) son las coordenadas de mi array bidimensional
		for (int i = 0; i < alumnos; i++) {
			System.out.println("Introduce las notas del alumno " + (i + 1));
			for (int j = 0; j < numero; j++) {
				System.out.println("Introduce las nota " + (j + 1));
				// Guardo la nota en la coordenada adecuada
				notas[i][j] = in.nextInt();

			}
		}
		mostrar(notas);
	}

	static void mostrar(int[][] tabla) {
		// Es otro bucle anidado porque tengo dos dimensiones
		for (int i = 0; i < tabla.length; i++) {
			for (int j = 0; j < tabla[i].length; j++) {
				System.out.print(tabla[i][j] + " | ");
			}
			System.out.println();
		}
	}

}


package com.trifulcas.saludo;

import java.util.Scanner;

public class EjemploMulti {

	public static void main(String[] args) {

		Scanner in = new Scanner(System.in);
		// Pido el número de alumnos (alto de mi tabla multidimensional)
		System.out.println("Introduce el número de alumnos");
		int alumnos = in.nextInt();
		// Pido el número de notas (ancho de mi tabla multidimensional)
		System.out.println("Introduce el número de notas por alumno");
		int numero = in.nextInt();
		// Creo un array multidimensional con los datos que me han dado
		int[][] notas = new int[alumnos][numero];

		// Para pedir los datos tengo que usar un bucle anidado
		// El primero (i) es de los alumnos
		// El segundo (j) es de las notas
		// La combinación (i,j) son las coordenadas de mi array bidimensional
		for (int i = 0; i < alumnos; i++) {
			System.out.println("Introduce las notas del alumno " + (i + 1));
			for (int j = 0; j < numero; j++) {
				System.out.println("Introduce las nota " + (j + 1));
				// Guardo la nota en la coordenada adecuada
				notas[i][j] = in.nextInt();

			}
		}
		mostrar(notas);

		// Para cada alumno la nota más alta
		for (int i = 0; i < alumnos; i++) {
			System.out.print("La nota más alta del alumno " + (i + 1) + " es: ");
			int alta = 0;
			for (int j = 0; j < numero; j++) {
				if (alta < notas[i][j]) {
					alta = notas[i][j];
				}
				// alta=Math.max(alta,notas[i][j])
			}
			System.out.println(alta);
		}

		// Para cada alumno la media
		for (int i = 0; i < alumnos; i++) {
			System.out.print("La media de notas del alumno " + (i + 1) + " es: ");
			int suma = 0;
			for (int j = 0; j < numero; j++) {
				suma+=notas[i][j];
			}
			System.out.println(suma/numero);
		}
	}

	static void mostrar(int[][] tabla) {
		// Es otro bucle anidado porque tengo dos dimensiones
		for (int i = 0; i < tabla.length; i++) {
			for (int j = 0; j < tabla[i].length; j++) {
				System.out.print(tabla[i][j] + " | ");
			}
			System.out.println();
		}
	}

}

Utilizando funciones:


package com.trifulcas.saludo;

import java.util.Scanner;

public class EjemploMulti {

	public static void main(String[] args) {

		Scanner in = new Scanner(System.in);
		// Pido el número de alumnos (alto de mi tabla multidimensional)
		System.out.println("Introduce el número de alumnos");
		int alumnos = in.nextInt();
		// Pido el número de notas (ancho de mi tabla multidimensional)
		System.out.println("Introduce el número de notas por alumno");
		int numero = in.nextInt();
		// Creo un array multidimensional con los datos que me han dado
		int[][] notas = new int[alumnos][numero];

		// Para pedir los datos tengo que usar un bucle anidado
		// El primero (i) es de los alumnos
		// El segundo (j) es de las notas
		// La combinación (i,j) son las coordenadas de mi array bidimensional
		for (int i = 0; i < alumnos; i++) {
			System.out.println("Introduce las notas del alumno " + (i + 1));
			for (int j = 0; j < numero; j++) {
				System.out.println("Introduce las nota " + (j + 1));
				// Guardo la nota en la coordenada adecuada
				notas[i][j] = in.nextInt();

			}
		}
		mostrar(notas);

		// Para cada alumno la nota más alta
		for (int i = 0; i < alumnos; i++) {
			System.out.print("La nota más alta del alumno " + (i + 1) + " es: ");
			System.out.println(mayor(notas[i]));
		}

		// Para cada alumno la media
		for (int i = 0; i < alumnos; i++) {
			System.out.print("La media de notas del alumno " + (i + 1) + " es: ");
			
			System.out.println(media(notas[i]));
		}
	}

	static void mostrar(int[][] tabla) {
		// Es otro bucle anidado porque tengo dos dimensiones
		for (int i = 0; i < tabla.length; i++) {
			for (int j = 0; j < tabla[i].length; j++) {
				System.out.print(tabla[i][j] + " | ");
			}
			System.out.println();
		}
	}
	static int mayor(int[] numeros) {
		int mayor=numeros[0];
		for(int n:numeros) {
			if (n>mayor) {
				mayor=n;
			}
		}
		return mayor;
	}
	static int media(int[] numeros) {
		int suma=0;
		for(int n:numeros) {
			suma+=n;
		}
		return suma/numeros.length;
	}

	/*
	 * notas[2][3] (2x3)
	 * 
	 * |3 | 4 | 5 | 
	 * |2 | 6 | 10 |
	 * 
	 * notas[0]=|3 | 4 | 5 | 
	 * notas[1]=|2 | 6 | 10 |
	 * 
	 * notas[0] es un array normal de una dimensión
	 * notas[1] es otro array de una dimensión
	 * int[] foo=notas[0]
	 */
	
}


Arrays Multidimensionales

public static void main(String[] args) {
		// Un array de 3 números
		int[] numeros = new int[3];

		// Un array de 3x3
		int[][] bidimensional = new int[3][3];

		// Un array de 3x3x3
		int[][][] tridimensional = new int[3][3][3];

		numeros[0] = 5;
		bidimensional[0][0] = 5;
		bidimensional[1][1] = 3;
		tridimensional[0][1][0] = 7;

		for (int i = 0; i < numeros.length; i++) {
			System.out.print(numeros[i]+" | ");
		}
		System.out.println();
		System.out.println();
		for (int i = 0; i < bidimensional.length; i++) {
			for (int j = 0; j < bidimensional[i].length; j++) {
				System.out.print(bidimensional[i][j]+" | ");
			}
			System.out.println();
		}
		System.out.println();
		System.out.println();
		// Array de dos dimensiones
		int[][] irregular= {{1,2,3},{4,5},{6,7,8,9},{10}};
		for (int i = 0; i < irregular.length; i++) {
			for (int j = 0; j < irregular[i].length; j++) {
				System.out.print(irregular[i][j]+" | ");
			}
			System.out.println();
		}
	}

Fill y sort en array

import java.util.Arrays;

public class ArraysJava {

	public static void main(String[] args) {
		String[] aulas= new String[5];
		// aulas:{...} Espacio vacío de 5 posiciones
		// Mostrar
		mostrar(aulas);
		// Nos rellena un array con el valor que le digamos
		Arrays.fill(aulas, "SIN NOMBRE");
		
		// Mostrar
		mostrar(aulas);
		//Asignar un valor individual a cada aula con el número
		for(int i=1;i<=aulas.length;i++) {
			aulas[i-1]="AULA "+i;
		}
		//Mostrar
		mostrar(aulas);
		// Cambiar el valor por índice
		aulas[2]="AUla Música";
		aulas[4]="AUla auxiliar";
		// Mostrar
		mostrar(aulas);
		
	// Ordenar aulas
		Arrays.sort(aulas);
		mostrar(aulas);
		// Sin importar mayúsculas/minúsculas
		Arrays.sort(aulas, String.CASE_INSENSITIVE_ORDER);
		mostrar(aulas);
		// Orden inverso
		Arrays.sort(aulas, Collections.reverseOrder());
		
		mostrar(aulas);
		
	}
	static void mostrar(String[] tabla) {
		for(String el:tabla) {
			System.out.println(el);
		}
	}

}

Arrays en Java

https://www.w3schools.com/java/java_arrays.asp

https://www.tutorialspoint.com/java/java_arrays.htm

package com.trifulcas.saludo;

public class ArraysJava {

	public static void main(String[] args) {
		String nombre;
		String[] nombres = { "Juan", "Eva", "Ana" };
		String[] alumnos = { "Juan", "Pepe", "Ana" };
		String[] aulas= new String[5];

		System.out.println(nombres[1]);

		// For tradicional
		for (int i = 0; i < nombres.length; i++) {
			System.out.println(nombres[i]);
		}

		// Foreach
		for (String n : nombres) {
			System.out.println(n);
		}
		System.out.println(estaEva(nombres));
		System.out.println(estaEva(alumnos));
		int[] longitudes=longitudes(alumnos);
		for (int a : longitudes) {
			System.out.println(a);
		}
	}

	public static boolean estaEva(String[] nombres) {
		for (String n : nombres) {
			if (n == "Eva") {
				return true;
			}
		}
		return false;
	}

	public static int[] longitudes(String[] nombres) {
		int[] l = new int[nombres.length];
		for (int i = 0; i < nombres.length; i++) {
			l[i] = nombres[i].length();
		}
		return l;
	}

}

Ejercicios java

Vamos a hacer un programa que nos pida un nombre y si la longitud del nombre es mayor de 10 nos diga ‘¡Que nombre más largo!’.

Cread un progrma que nos pida dos números y nos diga cual es el mayor.

Otro que nos pida dos números y nos diga si los dos son pares o los dos son impares.

Cread una función que nos calcule el área de un círculo y otra que nos calcule la circunferencia.
Con esta función cread un programa que nos vaya pidiendo radios y nos muestre el valor del área y de la circunferencia de un círculo con el radio que nos han dado. Cuando el usuario introduzca un 0 salimos del programa.

Cread una función a la que le pasemos una cadena y un número y nos devuelva esa cadena repetida n veces.
Con esa función cread otra a la que le pasemos una letra y haga lo siguiente:
si la longitud de la cadena que le pasamos es diferente de ‘1’ mostrar la cadena.
Si la longitud es 1 mostrar el arbolito siguiente hasta 5:
A
AA
AAA
AAAA
AAAAA

Cread una sobrecarga de la función para que podamos pasar un número que será el tamaño del arbolito.

package com.trifulcas.saludo;

import java.util.Scanner;

public class Ejercicios1 {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		// Nombre más largo de 10
		System.out.println("Introduce tu nombre");
		String nombre=in.nextLine();
		
		if (nombre.length()>10) {
			System.out.println("Que nombre más largo");
		}
		
		// Número mayor
		System.out.println("Introduce el número 1");
		int a=in.nextInt();
		System.out.println("Introduce el número 2");
		int b=in.nextInt();
		System.out.println("El número mayor es "+Math.max(a, b));

		// Paridad de dos números
		System.out.println("Introduce el número 1");
		 a = in.nextInt();
		System.out.println("Introduce el número 2");
		 b = in.nextInt();

		if (esPar(a) == esPar(b)) {
			System.out.println("Los dos tienen la misma paridad");
		} else {
			System.out.println("Los dos tienen distinta paridad");
		}

		//Usando operador ternario
		System.out.println("Los dos tienen " + (esPar(a) == esPar(b) ? "la misma" : "distinta") + " paridad");

		in.close();
	}
	// Función que nos devuelve si un número es par
	public static boolean esPar(int num) {
		return num % 2 == 0;
	}

}

package com.trifulcas.saludo;

import java.util.Scanner;

public class Ejercicios2 {

	public static void main(String[] args) {
		double radio;
		Scanner in = new Scanner(System.in);
		do {
			System.out.println("Introduce el radio");
			radio = in.nextDouble();
			if (radio != 0) {
				System.out.println("El círculo de radio " + radio + " tiene una circunferencia de "
						+ circunferencia(radio) + " y un área de " + area(radio));
			}
		} while (radio != 0);
		in.close();
	}

	public static double area(double radio) {
		return Math.PI * radio * radio;
	}

	public static double circunferencia(double radio) {
		return Math.PI * radio * 2;
	}
}

package com.trifulcas.saludo;

import java.util.Scanner;

public class Ejercicio2b {

	public static void main(String[] args) {
		double radio;
		Scanner in = new Scanner(System.in);
		while (true) {
			System.out.println("Introduce el radio");
			radio = in.nextDouble();
			if (radio == 0) {
				break;
			}
			System.out.println("El círculo de radio " + radio + " tiene una circunferencia de " + circunferencia(radio)
					+ " y un área de " + area(radio));
		}
		in.close();
	}

	public static double area(double radio) {
		return Math.PI * radio * radio;
	}

	public static double circunferencia(double radio) {
		return Math.PI * radio * 2;
	}
}

package com.trifulcas.saludo;

public class Ejercicio3 {

	public static void main(String[] args) {
		System.out.println(arbol("hola"));
		System.out.println(arbol("J"));
		System.out.println(arbol("@"));
		System.out.println(arbol("@", 3));
		System.out.println(arbol("@", 8));
	}

	public static double iva(double precio) {
		return iva(precio,.21);
	}
	public static double iva(double precio,double iva) {
		return precio*(1+iva);
	}
	
	public static String arbol(String cadena) {
		return arbol(cadena, 5);
	}

	public static String arbol(String cadena, int veces) {
		if (cadena.length() != 1) {
			return cadena;
		}
		String res = "";
		for (int i = 0; i < veces; i++) {
			res += repetir(cadena, i + 1) + "\n";
		}
		return res;
	}

	public static String repetir(String cadena, int veces) {
		String res = "";
		for (int i = 0; i < veces; i++) {
			res += cadena;
		}
		return res;
	}
}

Sobrecarga


public static void main(String[] args) {
		saludo("Ana", 2);
		saludo("Juan", 3);
		saludo("Eva");
		saludo(3);
		int a = doble(7);
		System.out.println(a);
		int b = doble(doble(doble(3)));
		System.out.println(b);
		System.out.println(mayor(1,3));
		System.out.println(mayor(10,3));
	}

	// Esto es un método porque no devuelve nada
	static void saludo(String nombre, int n) {
		for (int i = 0; i < n; i++) {
			System.out.println("Hola " + nombre + " que tal");
		}
	}
	// SObre carga (overloading) de funciones. Distintos parámetros
	// Mismo nombre de función
	// Java llamará a la función que 'encaje' con los parámetros
	// Si no encaja ninguna, nos da un error
	// Podemos llamar a funciones entre sobrecargas o no
	static void saludo(String nombre) {
		saludo(nombre,1);
	}
	static void saludo(int n) {
		for (int i = 0; i < n; i++) {
			System.out.println("Hola que tal estás");
		}
	}
	// Esto sí es una función, porque devolvemos un valor
	static int doble(int numero) {
		return numero * 2;
	}

	static int mayor(int a, int b) {
		if (a > b) {
			b = a;
		}
		return b;
	}