Commit aebbd393 by Patryk Czarnik

switch - dalsze wersje

parent 53743524
package p05_switch;
import javax.swing.*;
public class DzienTygodnia4 {
static String nazwaDnia(int numer) {
switch (numer) {
case 1: return "poniedziałek";
case 2: return "wtorek";
case 3: return "środa";
case 4: return "czwartek";
case 5: return "piątek";
case 6: return "sobota";
case 7: return "niedziela";
default: throw new IllegalArgumentException("Nieznany numer " + numer);
}
}
public static void main(String[] args) {
int numer = Integer.parseInt(JOptionPane.showInputDialog("Podaj numer dnia tygodnia [1-7]"));
try {
String nazwa = nazwaDnia(numer);
JOptionPane.showMessageDialog(null, "To jest " + nazwa);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e, "Błąd", JOptionPane.ERROR_MESSAGE);
}
JOptionPane.showMessageDialog(null, "Koniec programu");
}
}
package p05_switch;
import javax.swing.*;
// W tej wersji korzystamy z możliwości Java 14: "switch expression".
// switch zwraca wynik, który przechwytujemy i (w tym programie) zapisujemy do zmiennej.
// Tutaj widzimy najprostsze podejście: po prawej stronie strzałek są po prostu wartości wynikowe.
// Wersja bardziej rozbudowana: IleDniMaMiesiac5
public class DzienTygodnia5 {
public static void main(String[] args) {
int numer = Integer.parseInt(JOptionPane.showInputDialog("Podaj numer dnia tygodnia [1-7]"));
try {
String nazwa = switch (numer) {
case 1 -> "poniedziałek";
case 2 -> "wtorek";
case 3 -> "środa";
case 4 -> "czwartek";
case 5 -> "piątek";
case 6 -> "sobota";
case 7 -> "niedziela";
default -> throw new IllegalArgumentException("Nieznany numer " + numer);
};
JOptionPane.showMessageDialog(null, "To jest " + nazwa);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e, "Błąd", JOptionPane.ERROR_MESSAGE);
}
JOptionPane.showMessageDialog(null, "Koniec programu");
}
}
package p05_switch;
import javax.swing.*;
// klasyczny sposób grupowanie case'ów - napisz kilka casów jeden za drugim i dla nich wszystkich zrób jedną wspólną obsługą
public class IleDniMaMiesiac1 {
public static void main(String[] args) {
String miesiac = JOptionPane.showInputDialog("Podaj nazwę miesiąca");
// Wypisz ile dni ma ten miesiąc (28 / 29 / 30 / 31)
switch (miesiac) {
case "styczeń":
case "marzec":
case "maj":
case "lipiec":
case "sierpień":
case "październik":
case "grudzień":
JOptionPane.showMessageDialog(null, miesiac + " ma 31 dni");
break;
case "kwiecień":
case "czerwiec":
case "wrzesień":
case "listopad":
JOptionPane.showMessageDialog(null, miesiac + " ma 30 dni");
break;
case "luty":
int rok = Integer.parseInt(JOptionPane.showInputDialog("O który rok chodzi?"));
if (rok % 4 == 0 && rok % 100 != 0 || rok % 400 == 0) {
JOptionPane.showMessageDialog(null, miesiac + " ma 29 dni");
} else {
JOptionPane.showMessageDialog(null, miesiac + " ma 28 dni");
}
break;
default:
JOptionPane.showMessageDialog(null, "Nie znam takiego miesiąca: " + miesiac, "Błąd", JOptionPane.ERROR_MESSAGE);
}
}
}
package p05_switch;
import javax.swing.*;
public class IleDniMaMiesiac2 {
public static void main(String[] args) {
String miesiac = JOptionPane.showInputDialog("Podaj nazwę miesiąca");
switch (miesiac) {
case "styczeń", "marzec", "maj", "lipiec", "sierpień", "październik", "grudzień" ->
JOptionPane.showMessageDialog(null, miesiac + " ma 31 dni");
case "kwiecień", "czerwiec", "wrzesień", "listopad" ->
JOptionPane.showMessageDialog(null, miesiac + " ma 30 dni");
case "luty" -> {
int rok = Integer.parseInt(JOptionPane.showInputDialog("O który rok chodzi?"));
if (rok % 4 == 0 && rok % 100 != 0 || rok % 400 == 0) {
JOptionPane.showMessageDialog(null, miesiac + " ma 29 dni");
} else {
JOptionPane.showMessageDialog(null, miesiac + " ma 28 dni");
}
}
default ->
JOptionPane.showMessageDialog(null, "Nie znam takiego miesiąca: " + miesiac, "Błąd", JOptionPane.ERROR_MESSAGE);
}
}
}
package p05_switch;
import javax.swing.*;
public class IleDniMaMiesiac5 {
public static void main(String[] args) {
try {
String miesiac = JOptionPane.showInputDialog("Podaj nazwę miesiąca");
int ileDni = switch (miesiac) {
case "styczeń", "marzec", "maj", "lipiec", "sierpień", "październik", "grudzień" -> 31;
case "kwiecień", "czerwiec", "wrzesień", "listopad" -> 30;
case "luty" -> {
int rok = Integer.parseInt(JOptionPane.showInputDialog("O który rok chodzi?"));
if (rok % 4 == 0 && rok % 100 != 0 || rok % 400 == 0) {
yield 29;
} else {
yield 28;
}
}
default -> throw new IllegalArgumentException("Nieznany miesiąc " + miesiac);
};
JOptionPane.showMessageDialog(null, miesiac + " ma " + ileDni + " dni");
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e, "Błąd", JOptionPane.ERROR_MESSAGE);
}
}
}
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