Commit 5a47d03e by Patryk Czarnik

if

parent a08f4e86
package p04_instrukcje;
import java.util.Random;
public class If {
public static void main(String[] args) {
Random random = new Random();
int x = random.nextInt(100); // liczba od 0 do 99 włącznie
int y = random.nextInt(100);
System.out.println("Wylosowane liczby:");
System.out.printf("x = %d , y = %d\n", x, y);
// Wzorcowa wersja if:
// if(WARUNEK) { INSTRUKCJE1 } else { INSTRUKCJE2 }
// Gdy WARUNEK jest prawdą, wykonają się INSTRUKCJE1, a jeśli nieprawdą to INSTRUKCJE2
if(x % 2 == 0) {
System.out.println("x jest parzysty");
System.out.println("Ala ma kota");
} else {
System.out.println("x jest nieparzysty");
System.out.println("Ola ma psa");
}
System.out.println("a kuku");
System.out.println();
// Jeśli za ifem lub elsem do wykonania jest tylko jedna instrukcja, to można pominąć nawiasy klamrowe.
if(x >= 50)
System.out.println(">= 50");
else
System.out.println("< 50");
// Używajmy tego jednak z umiarem, tylko w bardzo prostych przypadkach, np. break, throw, return...
// W większości przypadków zalecane jest wzięcie wykonywanego kodu w {nawiasy klamrowe},
// gdyż łatwiej dokonać późniejszych zmian, np. dodać kolejną linię itp...
/* Za instrukcją strukturalną (if, while, for...) w praktyce nigdy nie stawia się średnika
if(x == y); {
System.out.println("Obie liczby są równe!");
}
Powyższy kod zawsze wyświetliłby podany napis, bo struktiura jest taka:
"jeśli x == y, nie rób nic; a później ZAWSZE wypisuj ten tekst"
*/
// Można użyć samego if, bez else:
if(x + y >= 100) {
System.out.println("suma x i y jest trzycyfrowa");
}
// ify (i inne instrukcje blokowe) można zagnieżdżać. Tutaj tym bardziej zalecamy pisanie nawiasów {}
if(x % 2 == 0) {
if(y % 2 == 0) {
System.out.println("obie liczby są parzyste");
} else {
System.out.println("x parzysty, y nieparzysty");
}
} else {
if(y % 2 == 0) {
System.out.println("x nieparzysty, y parzysty");
} else {
System.out.println("obie liczby nieparzyste");
}
}
System.out.println();
// Jeśli rozpatrywanych sytuacji jest więcej niż 2, to typowym sposobem zapisu jest ciąg
// if - else if - ... - else
if(x > y) {
System.out.println("x > y");
} else if(x < y) {
System.out.println("x < y");
} else {
System.out.println("x = y");
}
// W Javie nie ma automatycznej konwersji liczb (ani innych rzeczy) na boolean
// if(liczba) {
// System.out.println("Nie zero");
// }
//
// if(liczba = 0) {
// System.out.println("Nie zero");
// }
// Warunkiem najczęściej jest porównanie, ale może też być wywołanie metody typu boolean
String str = "Ala ma kota";
if(str.isEmpty()) {
System.out.println("puste");
}
// może też być bezpośrednie użycie zmiennej typu boolean
boolean logika = x > 10 && y % 3 == 0;
if(logika) {
System.out.println("Dziwny warunek jest prawdą");
} else {
System.out.println("Nieprawda");
}
System.out.println("Koniec programu");
}
}
package p04_instrukcje;
import java.util.Random;
public class SpojnikiLogiczne {
public static void main(String[] args) {
Random random = new Random();
int x = random.nextInt(20);
int y = random.nextInt(20);
System.out.println("x = " + x + " , y = " + y);
// && - koniunkcja, "i", "and"
// warunek jest prawdziwy tylko gdy obie części są prawdziwe
if(x >= 10 && y >= 10) {
System.out.println("AAA obie liczby są dwucyfrowe");
} else {
System.out.println("BBB nieprawda, że obie na raz są dwucyfrowe");
}
// || - alternatywa, "lub", "or"
// warunek jest prawdziwy gdy co najmniej jedna część jest prawdziwa
if(x >= 10 || y >= 10) {
System.out.println("CCC któraś z liczb jest dwucyfrowa");
} else {
System.out.println("DDD obie liczby są jednocyfrowe");
}
// Istnieje też ^ - to jest alternatywa rozłączna, tzw. "xor",
// Jest prawdą, gdy dokładnie jedna z części jest prawdą.
// Inaczej mówiąc ^ sprawdza czy warunki składowe dają różne wyniki.
// W praktyce nieużywane
if(x >= 10 ^ y >= 10) {
System.out.println("EEE tylko jedna z liczb jest dwucyfrowa");
} else {
System.out.println("FFF warunki są jednakowe dla obu liczb");
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment