Podstawy programowania w Javie. Cz. 3
Transkrypt
Podstawy programowania w Javie. Cz. 3
„Java EE – produkcja oprogramowania” PPJ – PODSTAWY PROGRAMOWANIA W JAVIE PODSTAWY JĘZYKA JAVA – 3 Warszawa, 2017L 2 Operatory, rzutowanie typów, zasięg zmiennych, instrukcje warunkowe Operatory = + * / Kolejność wykonywania operacji od lewej do prawej: 1. nawiasy, 2. mnożenie i dzielenie, 3. dodawania i odejmowanie. Operator dzielenia działa inaczej dla typów całkowitoliczbowych i zmiennoprzecinkowych. Przykłady: double a = 9.0 / 2.0; // a = 4.5 int b = 4 / 2; // b = 2 int c = 9 / 2; // c = 4 double d = 9 / 2; // d = 4.0 double x = 3 / 2 + 1; // x = 2.0 double y = 3 / (2 + 1); // y = 1.0 String five = 5; // błąd kompilacji! 3 Przypisania: Dodawania: Odejmowania: Mnożenia: Dzielenia: Rzutowanie w przypisaniach int a = 1; double b = 1; // a = 1 // b = 1.0, // rzutowanie niejawne int c = 1.5; double d = (int)1.75; // błąd kompilacji! // d = 1.0 OK // rzutowanie jawne double x = 1/3; // // // // x = 0.0 dzielenie całkowitoliczbowe y = 0.(3) z = 0.(3) 4 double y = (double)1/3; double z = 1./3; 1/2 Rzutowanie w argumentach 2/2 public static void square(int x){ System.out.println(x * x); } public static void main(String[] args){ Main.square("hello"); // błąd! Main.square(5.5); // błąd! } 5 public static void square(double x){ System.out.println(x * x); } public static void main(String[] args){ Main.square(5); // OK } Konwersja typów. Przykłady int i = 1; String str; Przykład konwersji typu int na String: str str str str = = = = i; Integer.toString(i); i + ""; String.valueOf(i); // błąd! Przykład konwersji typu String na int: // błąd! 6 i = "1"; i = Integer.parseInt("1"); Zasięg zmiennych 1/2 Zasięg (ang. scope) zmiennych rozpoczyna się od instrukcji, w której zostały zadeklarowane do końca bloku. Parametry metod zachowują się tak samo jak zmienne zadeklarowane w metodzie. Przykład: public static void main(String[] args) { double a = 9.0 / 2.0; System.out.println(a); } 7 public static void square(double x){ System.out.println(x * x); } Zasięg zmiennych 2/2 Przesłanianie zmiennych. Przykład: static int x; public static void scope(){ x = 1; if (x == 1){ int x = 2; System.out.println("x = " + x ); } System.out.println("x = " + x ); // x = 2 // x = 1 8 } Operatory porównania Operatory porównania: x > y, x < y, x <= y, x >= y, x == y && (koniunkcja), || (alternatywa), !(negacja) Operatora == nie należy używać dla typu double !!! Przykład: 9 double a = Math.cos (Math.PI / 2); // a = 6.123233995736766E-17 double b = 0.0; if ( a == b) System.out.println(„a == b"); else System.out.println(„a != b"); Instrukcja warunkowa if if (warunek_logiczny) { // instrukcje jeżeli warunek jest spełniony } Przykład: 10 public static void test(int x) { if (x > 0) { System.out.println(x + " > 0"); } } Instrukcja warunkowa if-else if (warunek_logiczny) { // instrukcje jeżeli warunek jest spełniony } else { // instrukcje jeżeli warunek NIE jest spełniony } Przykład: if (x > 0) { System.out.println(x + " > 0"); } else { System.out.println(x + " <= 0"); } } 11 public static void test(int x) { Instrukcja warunkowa if-else if 1/2 12 if (warunek_logiczny_1) { // instrukcje jeżeli warunek 1. jest spełniony } else if (warunek_logiczny_2) { // instrukcje jeżeli NIE spełniony jest warunek 1. // i warunek 2. jest spełniony } else { // instrukcje w p.p. } Instrukcja warunkowa if-else if 2/2 Przykład: public static void test(int x) { if (x > 0) { System.out.println(x + " > 0"); } else if (x == 0) { System.out.println(x + " == 0"); } else { System.out.println(x + " < 0"); } 13 } Ćwiczenie Napisz program do obliczania wynagrodzenia pracownika. Wynagrodzenie zależy od liczby przepracowanych godzin. Płaca minimalna 12 PLN / godz. Norma tygodniowa 40 godzin. Maksymalna liczba godzin pracy w tygodniu 60. Nadgodziny płatne 150%. 14 • • • • •