package p09_funkcje;

public class B_ParametryIWynik {
	// Funkcja może zwracać wynik:
	// - przed nazwą funkcji musi być podany typ wyniku
	// - w treści musi być return (może być więcej niż jeden), poprzez który funkcja ustala wartość wyniku
	
	static String hello() {
		return "Hello world";
	}
	
	// Funkcja może mieć zadeklarowane parametry, czyli takie zmienne,
	// których wartość przekazuje się podczas wywołania
	static void powitaj(String imie, String miasto) {
		System.out.println("Witaj " + imie + " z miasta " + miasto);
	}
	
	static long kwadrat(int x) {
		return (long)x*x;
	}
	
	public static void main(String[] args) {
		System.out.println("1:");
		hello();
		// zauważmy, że napis Hello world nie pojawił się jeszce na ekranie.
		// Samo wywołanie funkcji, która robi return, nie pokazuje nigdzie zwróconej wartości.
		System.out.println("2:");
		String s = hello();
		System.out.println("3:");
		System.out.println("Wynikiem wywołanie jest " + s);
		System.out.println("4:");
		// można wywołanie funkcji wstawić do printa:
		System.out.println(hello());
		System.out.println("5: " + hello().toUpperCase());
		System.out.println();
		
		powitaj("Ala", "Łódź");
		powitaj("Patryk", "Żyrardów");
		powitaj("Patryk", "Prudnik");
		System.out.println();
		
		long wynik = kwadrat(2);
		System.out.println(wynik);
		
		// można też od razu printować:
		System.out.println(kwadrat(30));
		System.out.println(kwadrat(1000000));
	}

}
