Commit ce895693 by Patryk Czarnik

mapa i switch

parent d493bcb9
package jedenasty_kwietnia;
import java.util.HashMap;
import java.util.Map;
import javax.swing.JOptionPane;
public class IleDniMaMiesiac {
public static void main(String[] args) {
String miesiac = JOptionPane.showInputDialog("Podaj nazwę miesiąca");
// zadanie: wypisz ile dni ma ten miesiąc
// sposób pierwszy: sprawdzanie ifami
if("styczeń".equals(miesiac)) {
JOptionPane.showMessageDialog(null, miesiac + " ma 31 dni");
} else if("luty".equals(miesiac)) {
JOptionPane.showMessageDialog(null, miesiac + " ma 28 lub 29 dni");
} else if("marzec".equals(miesiac)) {
JOptionPane.showMessageDialog(null, miesiac + " ma 31 dni");
} // i tak dalej
// sposób drugi: instrukcja switch, która w Javie ma więcej możliwości niż w C++
// (w Pythonie dostępne od wersji 3.10 pod nazwą match case)
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("Podaj rok"));
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 ma takiego miesiąca", "Błąd", JOptionPane.ERROR_MESSAGE);
}
}
// sposób trzeci - słownik
Map<String, Integer> mapa = new HashMap<>(Map.of("styczeń", 31, "luty", 28,
"marzec", 31, "kwiecień", 30, "maj", 31, "czerwiec", 30,
"lipiec", 31, "sierpień", 31, "wrzesień", 30, "październik", 31));
mapa.put("listopad", 30);
mapa.put("grudzień", 31);
if(mapa.containsKey(miesiac)) {
int wynik = mapa.get(miesiac);
JOptionPane.showMessageDialog(null, miesiac + " ma " + wynik + " dni");
} else {
JOptionPane.showMessageDialog(null, "Nie ma takiego miesiąca", "Błąd", JOptionPane.ERROR_MESSAGE);
}
}
}
package jedenasty_kwietnia;
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;
// Ten program ma pokazać czym są "słowniki" (które w Javie nazywają się "Map")
public class ProgramSklepowy {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// słownik / mapa przechowuje pary klucz-wartość, np. u nas produkt i jego cena
Map<String, Integer> cennik = new TreeMap<>();
// dodajemy przykładowe produkty
cennik.put("cola", 7);
cennik.put("soczek", 3);
// można więcej
System.out.println("produkty:");
cennik.forEach((towar, cena) -> {
System.out.println(" * " + towar + " za " + cena + " zl");
});
int suma = 0;
while(true) {
System.out.print("Co chcesz kupic? ");
String towar = scanner.nextLine();
if(towar.isEmpty()) break;
if(! cennik.containsKey(towar)) {
System.out.println("Nie ma takiego towaru");
continue;
}
int cena = cennik.get(towar);
System.out.println(towar + " kosztuje " + cena + " zl za sztuke");
System.out.print("Ile sztuk kupujesz? ");
int ile = scanner.nextInt();
scanner.nextLine(); // zeby scanner przeszedl do nast linii
int koszt = cena * ile;
System.out.println("Za ten towar placisz " + koszt + " zl");
suma += koszt;
}
System.out.println("Lacznie do zaplaty: " + suma + " zl");
}
}
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