package alx.p06_funkcje.teoria;

public class Funkcje3_Wynik {
	
	// Funkcja może zwrócić wynik:
	static int liczba() {
		return 13;
	}
	
	static int dodaj(int x, int y) {
		return x + y;
	}

	static String napis() {
		return "Hello world";
	}
	
	static String powitanie(String imie) {
		return "Witaj " + imie + ", miło Cię poznać";
	}
	
	// Funkcja może zawierać wiele instrukcji return w różnych miejscach. Np. w zależości od warunku zwróć jedno lub drugie.
	// Kompilator Javy sprawdza jednak, czy funkcja zwraca wynik w każdej sytuacji.
	static int roznicaBezwzgledna(int x, int y) {
		if(x >= y) {
			return x - y;
		} else {
			return y - x;
		}
	}	
	
	public static void main(String[] args) {
		liczba();
		// Czy liczba 13 wypisze się na ekran? NIE
		
		// To, że funkcja zwraca wynik, oznacza, że np. można ten wynik zapisać na zmienną:
		int wynik = liczba();
		System.out.println("Funkcja zwróciła wynik " + wynik); // dopiero tutaj
		

		wynik = dodaj(13, 12);
		System.out.println("Dodawanie zwróciło wynik " + wynik);
		
		String napis;
		napis = powitanie("Ala");
		System.out.println("Powitanie 1: " + napis);
		napis = powitanie("Karol");
		System.out.println("Powitanie 2: " + napis);
		
		String s = "Ola";
		napis = powitanie(s);
		System.out.println("Powitanie 2: " + napis);
	}

}
