Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
2
20250331
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Patryk Czarnik
20250331
Commits
70982f41
Commit
70982f41
authored
Mar 31, 2025
by
Patryk Czarnik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
switch poprawka
parent
e4ffb433
Show whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
522 additions
and
274 deletions
+522
-274
Argumenty.java
src/main/java/gotowe/p01_interakcja/argumenty/Argumenty.java
+1
-1
Losowanie.java
src/main/java/gotowe/p02_zmienne/Losowanie.java
+40
-0
DniTygodnia0.java
...ain/java/gotowe/p03_instrukcje/c_switch/DniTygodnia0.java
+30
-0
DniTygodnia1.java
...ain/java/gotowe/p03_instrukcje/c_switch/DniTygodnia1.java
+35
-0
DniTygodnia2.java
...ain/java/gotowe/p03_instrukcje/c_switch/DniTygodnia2.java
+14
-16
DniTygodnia3.java
...ain/java/gotowe/p03_instrukcje/c_switch/DniTygodnia3.java
+33
-0
DniTygodnia4.java
...ain/java/gotowe/p03_instrukcje/c_switch/DniTygodnia4.java
+33
-0
DniTygodnia5.java
...ain/java/gotowe/p03_instrukcje/c_switch/DniTygodnia5.java
+30
-0
IleDniMaMiesiac1.java
...java/gotowe/p03_instrukcje/c_switch/IleDniMaMiesiac1.java
+34
-0
IleDniMaMiesiac2.java
...java/gotowe/p03_instrukcje/c_switch/IleDniMaMiesiac2.java
+36
-0
IleDniMaMiesiac3.java
...java/gotowe/p03_instrukcje/c_switch/IleDniMaMiesiac3.java
+28
-0
IleDniMaMiesiac5.java
...java/gotowe/p03_instrukcje/c_switch/IleDniMaMiesiac5.java
+43
-0
Switch1.java
src/main/java/gotowe/p03_instrukcje/c_switch/Switch1.java
+0
-34
Switch3.java
src/main/java/gotowe/p03_instrukcje/c_switch/Switch3.java
+0
-45
Switch4.java
src/main/java/gotowe/p03_instrukcje/c_switch/Switch4.java
+0
-42
Switch5.java
src/main/java/gotowe/p03_instrukcje/c_switch/Switch5.java
+0
-51
Switch6.java
src/main/java/gotowe/p03_instrukcje/c_switch/Switch6.java
+0
-59
Switch8.java
src/main/java/gotowe/p03_instrukcje/c_switch/Switch8.java
+0
-26
SwitchNaObiektach.java
...ava/gotowe/p03_instrukcje/c_switch/SwitchNaObiektach.java
+36
-0
SwitchString1.java
...in/java/gotowe/p03_instrukcje/c_switch/SwitchString1.java
+25
-0
SwitchString2.java
...in/java/gotowe/p03_instrukcje/c_switch/SwitchString2.java
+22
-0
Imporcik1.java
src/main/java/gotowe/p06_funkcje/importowanie/Imporcik1.java
+24
-0
Imporcik2.java
src/main/java/gotowe/p06_funkcje/importowanie/Imporcik2.java
+23
-0
List.java
src/main/java/gotowe/p06_funkcje/importowanie/List.java
+35
-0
No files found.
src/main/java/gotowe/p01_interakcja/argumenty/Argumenty.java
View file @
70982f41
...
@@ -4,7 +4,7 @@ package gotowe.p01_interakcja.argumenty;
...
@@ -4,7 +4,7 @@ package gotowe.p01_interakcja.argumenty;
Gdy uruchamiamy jakiś program w systemowym wierszu poleceń,
Gdy uruchamiamy jakiś program w systemowym wierszu poleceń,
możemy po jego nazwie podać dowolne napisy – argumenty programu.
możemy po jego nazwie podać dowolne napisy – argumenty programu.
java
pcz
.p01_interakcja.argumenty.Argumenty Jeden Dwa "Ala ma kota" Cztery
java
gotowe
.p01_interakcja.argumenty.Argumenty Jeden Dwa "Ala ma kota" Cztery
*/
*/
public
class
Argumenty
{
public
class
Argumenty
{
...
...
src/main/java/gotowe/p02_zmienne/Losowanie.java
0 → 100644
View file @
70982f41
package
gotowe
.
p02_zmienne
;
import
java.util.Random
;
import
java.util.concurrent.ThreadLocalRandom
;
public
class
Losowanie
{
public
static
void
main
(
String
[]
args
)
{
// tworzymy obiekt Random - "generator liczb pseudolosowych"
Random
random
=
new
Random
();
double
d
=
random
.
nextDouble
();
// liczba z zakresu [0.0 , 1.0)
System
.
out
.
println
(
"double: "
+
d
);
// losowy int z całego zakresu intów (orientacyjnie od -2mld do +2mld)
int
x
=
random
.
nextInt
();
// int z zakresu od 0 do limit-1, czyli tu od 0 do 99
int
y
=
random
.
nextInt
(
100
);
// int z zakresu od 500 włącznie do 1000 wyłączając, czyli od 500 do 999
// dostępne od niedawna, od Java 17
int
z
=
random
.
nextInt
(
500
,
1000
);
System
.
out
.
println
(
x
+
" "
+
y
+
" "
+
z
);
// alternatywnie, bez tworzenia obiektu Random - każdy wątek ma swojego prywatnego randoma
// Od Java 7
int
r
=
ThreadLocalRandom
.
current
().
nextInt
();
System
.
out
.
println
(
r
);
char
losowaLitera1
=
(
char
)(
65
+
random
.
nextInt
(
26
));
char
losowaLitera2
=
(
char
)(
'A'
+
random
.
nextInt
(
'Z'
-
'A'
+
1
));
System
.
out
.
print
(
losowaLitera1
);
System
.
out
.
print
(
losowaLitera2
);
}
}
src/main/java/gotowe/p03_instrukcje/c_switch/DniTygodnia0.java
0 → 100644
View file @
70982f41
package
gotowe
.
p03_instrukcje
.
c_switch
;
import
javax.swing.JOptionPane
;
public
class
DniTygodnia0
{
public
static
void
main
(
String
[]
args
)
{
int
numer
=
Integer
.
parseInt
(
JOptionPane
.
showInputDialog
(
"Podaj numer dnia tygodnia"
));
if
(
numer
==
1
)
{
JOptionPane
.
showMessageDialog
(
null
,
"To jest poniedziałek"
);
}
else
if
(
numer
==
2
)
{
JOptionPane
.
showMessageDialog
(
null
,
"To jest wtorek"
);
}
else
if
(
numer
==
3
)
{
JOptionPane
.
showMessageDialog
(
null
,
"To jest środa"
);
}
else
if
(
numer
==
4
)
{
JOptionPane
.
showMessageDialog
(
null
,
"To jest czwartek"
);
}
else
if
(
numer
==
5
)
{
JOptionPane
.
showMessageDialog
(
null
,
"To jest piątek"
);
JOptionPane
.
showMessageDialog
(
null
,
"weekendu początek"
);
}
else
if
(
numer
==
6
)
{
JOptionPane
.
showMessageDialog
(
null
,
"To jest sobota"
);
}
else
if
(
numer
==
7
)
{
JOptionPane
.
showMessageDialog
(
null
,
"To jest niedziela"
);
}
else
{
JOptionPane
.
showMessageDialog
(
null
,
"Niepoprawny numer"
,
"Błąd"
,
JOptionPane
.
ERROR_MESSAGE
);
}
JOptionPane
.
showMessageDialog
(
null
,
"Koniec programu"
);
}
}
src/main/java/gotowe/p03_instrukcje/c_switch/DniTygodnia1.java
0 → 100644
View file @
70982f41
package
gotowe
.
p03_instrukcje
.
c_switch
;
import
javax.swing.JOptionPane
;
public
class
DniTygodnia1
{
// switch w takiej wersji, jaka w Javie jest dostępna od samego początku i działa też w języku C
// Jeśli mamy case'y z dwukropkami, a brakuje instrukcji break,
// to program przechodzi do kolejnych case'ów
public
static
void
main
(
String
[]
args
)
{
int
numer
=
Integer
.
parseInt
(
JOptionPane
.
showInputDialog
(
"Podaj numer dnia tygodnia"
));
switch
(
numer
)
{
case
1
:
JOptionPane
.
showMessageDialog
(
null
,
"To jest poniedziałek"
);
case
2
:
JOptionPane
.
showMessageDialog
(
null
,
"To jest wtorek"
);
case
3
:
JOptionPane
.
showMessageDialog
(
null
,
"To jest środa"
);
case
4
:
JOptionPane
.
showMessageDialog
(
null
,
"To jest czwartek"
);
case
5
:
JOptionPane
.
showMessageDialog
(
null
,
"To jest piątek"
);
JOptionPane
.
showMessageDialog
(
null
,
"weekendu początek"
);
case
6
:
JOptionPane
.
showMessageDialog
(
null
,
"To jest sobota"
);
case
7
:
JOptionPane
.
showMessageDialog
(
null
,
"To jest niedziela"
);
default
:
JOptionPane
.
showMessageDialog
(
null
,
"Niepoprawny numer"
,
"Błąd"
,
JOptionPane
.
ERROR_MESSAGE
);
}
JOptionPane
.
showMessageDialog
(
null
,
"Koniec programu"
);
}
}
src/main/java/gotowe/p03_instrukcje/c_switch/
Switch
2.java
→
src/main/java/gotowe/p03_instrukcje/c_switch/
DniTygodnia
2.java
View file @
70982f41
...
@@ -2,40 +2,38 @@ package gotowe.p03_instrukcje.c_switch;
...
@@ -2,40 +2,38 @@ package gotowe.p03_instrukcje.c_switch;
import
javax.swing.JOptionPane
;
import
javax.swing.JOptionPane
;
public
class
Switch2
{
public
class
DniTygodnia2
{
// switch w takiej wersji, jaka w Javie jest dostępna od samego początku i działa też w języku C
// Aby przerwać wykonanie po jednym case, trzeba użyć break
public
static
void
main
(
String
[]
args
)
{
public
static
void
main
(
String
[]
args
)
{
String
tekst
=
JOptionPane
.
showInputDialog
(
"Podaj numer dnia tygodnia"
);
int
numer
=
Integer
.
parseInt
(
JOptionPane
.
showInputDialog
(
"Podaj numer dnia tygodnia"
));
int
numer
=
Integer
.
parseInt
(
tekst
);
switch
(
numer
)
{
switch
(
numer
)
{
case
1
:
case
1
:
System
.
out
.
println
(
"
poniedziałek"
);
JOptionPane
.
showMessageDialog
(
null
,
"To jest
poniedziałek"
);
break
;
break
;
case
2
:
case
2
:
System
.
out
.
println
(
"
wtorek"
);
JOptionPane
.
showMessageDialog
(
null
,
"To jest
wtorek"
);
break
;
break
;
case
3
:
case
3
:
System
.
out
.
println
(
"
środa"
);
JOptionPane
.
showMessageDialog
(
null
,
"To jest
środa"
);
break
;
break
;
case
4
:
case
4
:
System
.
out
.
println
(
"
czwartek"
);
JOptionPane
.
showMessageDialog
(
null
,
"To jest
czwartek"
);
break
;
break
;
case
5
:
case
5
:
System
.
out
.
println
(
"
piątek"
);
JOptionPane
.
showMessageDialog
(
null
,
"To jest
piątek"
);
System
.
out
.
println
(
"czyli
weekendu początek"
);
JOptionPane
.
showMessageDialog
(
null
,
"
weekendu początek"
);
break
;
break
;
case
6
:
case
6
:
System
.
out
.
println
(
"
sobota"
);
JOptionPane
.
showMessageDialog
(
null
,
"To jest
sobota"
);
break
;
break
;
case
7
:
case
7
:
System
.
out
.
println
(
"
niedziela"
);
JOptionPane
.
showMessageDialog
(
null
,
"To jest
niedziela"
);
break
;
break
;
default
:
default
:
System
.
out
.
println
(
"niepoprawny numer dnia tygodnia"
);
JOptionPane
.
showMessageDialog
(
null
,
"Niepoprawny numer"
,
"Błąd"
,
JOptionPane
.
ERROR_MESSAGE
);
}
}
JOptionPane
.
showMessageDialog
(
null
,
"Koniec programu"
);
System
.
out
.
println
(
"Koniec programu"
);
}
}
}
}
src/main/java/gotowe/p03_instrukcje/c_switch/DniTygodnia3.java
0 → 100644
View file @
70982f41
package
gotowe
.
p03_instrukcje
.
c_switch
;
import
javax.swing.JOptionPane
;
public
class
DniTygodnia3
{
// switch w takiej wersji ze -> strzałkami, jaka w Javie jest dostępna od wersji 14
// Tutaj na pewno wykona się tylko jeden case; nie pisze się już break
public
static
void
main
(
String
[]
args
)
{
int
numer
=
Integer
.
parseInt
(
JOptionPane
.
showInputDialog
(
"Podaj numer dnia tygodnia"
));
switch
(
numer
)
{
case
1
->
JOptionPane
.
showMessageDialog
(
null
,
"To jest poniedziałek"
);
case
2
->
JOptionPane
.
showMessageDialog
(
null
,
"To jest wtorek"
);
case
3
->
JOptionPane
.
showMessageDialog
(
null
,
"To jest środa"
);
case
4
->
JOptionPane
.
showMessageDialog
(
null
,
"To jest czwartek"
);
case
5
->
{
JOptionPane
.
showMessageDialog
(
null
,
"To jest piątek"
);
JOptionPane
.
showMessageDialog
(
null
,
"weekendu początek"
);
}
case
6
->
JOptionPane
.
showMessageDialog
(
null
,
"To jest sobota"
);
case
7
->
JOptionPane
.
showMessageDialog
(
null
,
"To jest niedziela"
);
default
->
JOptionPane
.
showMessageDialog
(
null
,
"Niepoprawny numer"
,
"Błąd"
,
JOptionPane
.
ERROR_MESSAGE
);
}
JOptionPane
.
showMessageDialog
(
null
,
"Koniec programu"
);
}
}
src/main/java/gotowe/p03_instrukcje/c_switch/DniTygodnia4.java
0 → 100644
View file @
70982f41
package
gotowe
.
p03_instrukcje
.
c_switch
;
import
javax.swing.JOptionPane
;
public
class
DniTygodnia4
{
// Nawet w oparciu o "stary styl" switchów możemy zdefiniować oddzielną funkcję,
// która mapuje numery dni tygodnia na ich nazwy.
// switch umieszczony w oddzielnej funkcji zaczyna wyglądać całkiem "zgrabnie".
static
String
nazwaDniaTygodnia
(
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
(
"Niepoprawny numer "
+
numer
);
}
}
public
static
void
main
(
String
[]
args
)
{
try
{
int
numer
=
Integer
.
parseInt
(
JOptionPane
.
showInputDialog
(
"Podaj numer dnia tygodnia"
));
String
nazwa
=
nazwaDniaTygodnia
(
numer
);
JOptionPane
.
showMessageDialog
(
null
,
"To jest "
+
nazwa
);
}
catch
(
IllegalArgumentException
e
)
{
JOptionPane
.
showMessageDialog
(
null
,
e
.
getMessage
(),
"Błąd"
,
JOptionPane
.
ERROR_MESSAGE
);
}
}
}
src/main/java/gotowe/p03_instrukcje/c_switch/DniTygodnia5.java
0 → 100644
View file @
70982f41
package
gotowe
.
p03_instrukcje
.
c_switch
;
import
javax.swing.JOptionPane
;
public
class
DniTygodnia5
{
// Od Java 14 istnieje też konstrukcja "switch expression".
// Taki switch "daje wynik", który możemy np. wpisać do zmiennej.
// Przypomina to wywołanie funkcji, ale nie jest to oddzielna funkcja, tylko wyrażneie wpisane w miejscu użycia.
public
static
void
main
(
String
[]
args
)
{
try
{
int
numer
=
Integer
.
parseInt
(
JOptionPane
.
showInputDialog
(
"Podaj numer dnia tygodnia"
));
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
(
"Niepoprawny numer "
+
numer
);
};
JOptionPane
.
showMessageDialog
(
null
,
"To jest "
+
nazwa
);
}
catch
(
IllegalArgumentException
e
)
{
JOptionPane
.
showMessageDialog
(
null
,
e
.
getMessage
(),
"Błąd"
,
JOptionPane
.
ERROR_MESSAGE
);
}
}
}
src/main/java/gotowe/p03_instrukcje/c_switch/IleDniMaMiesiac1.java
0 → 100644
View file @
70982f41
package
gotowe
.
p03_instrukcje
.
c_switch
;
import
javax.swing.JOptionPane
;
public
class
IleDniMaMiesiac1
{
public
static
void
main
(
String
[]
args
)
{
String
miesiac
=
JOptionPane
.
showInputDialog
(
"Podaj nazwę miesiąca"
);
// używając switcha (najlepiej jakoś "sprytnie" ;-) )
// wypisz ile dni ma ten miesiąc
// DLA CHĘTNYCH - w przypadku lutego zapytaj o rok i stosując zasady kalendarza gregoriańskiego
// ustal, czy rok jest przestępny
// rok jest przestępny, jeśli jest podzielny przez 4, ale nie jest podzielny przez 100, chyba że jest podzielny przez 400
// wersja mało sprytna - po prostu 12 oddzielnych przypadków
switch
(
miesiac
)
{
case
"styczeń"
->
JOptionPane
.
showMessageDialog
(
null
,
"Ten miesiąc ma 31 dni"
);
case
"luty"
->
JOptionPane
.
showMessageDialog
(
null
,
"Ten miesiąc ma 28/29 dni"
);
case
"marzec"
->
JOptionPane
.
showMessageDialog
(
null
,
"Ten miesiąc ma 31 dni"
);
case
"kwiecień"
->
JOptionPane
.
showMessageDialog
(
null
,
"Ten miesiąc ma 30 dni"
);
case
"maj"
->
JOptionPane
.
showMessageDialog
(
null
,
"Ten miesiąc ma 31 dni"
);
case
"czerwiec"
->
JOptionPane
.
showMessageDialog
(
null
,
"Ten miesiąc ma 30 dni"
);
case
"lipiec"
->
JOptionPane
.
showMessageDialog
(
null
,
"Ten miesiąc ma 31 dni"
);
case
"sierpień"
->
JOptionPane
.
showMessageDialog
(
null
,
"Ten miesiąc ma 31 dni"
);
case
"wrzesień"
->
JOptionPane
.
showMessageDialog
(
null
,
"Ten miesiąc ma 30 dni"
);
case
"październik"
->
JOptionPane
.
showMessageDialog
(
null
,
"Ten miesiąc ma 31 dni"
);
case
"listopad"
->
JOptionPane
.
showMessageDialog
(
null
,
"Ten miesiąc ma 30 dni"
);
case
"grudzień"
->
JOptionPane
.
showMessageDialog
(
null
,
"Ten miesiąc ma 31 dni"
);
default
->
JOptionPane
.
showMessageDialog
(
null
,
"Niepoprawny miesiąc"
,
"Błąd"
,
JOptionPane
.
ERROR_MESSAGE
);
}
}
}
src/main/java/gotowe/p03_instrukcje/c_switch/IleDniMaMiesiac2.java
0 → 100644
View file @
70982f41
package
gotowe
.
p03_instrukcje
.
c_switch
;
import
javax.swing.JOptionPane
;
public
class
IleDniMaMiesiac2
{
public
static
void
main
(
String
[]
args
)
{
String
miesiac
=
JOptionPane
.
showInputDialog
(
"Podaj nazwę miesiąca"
);
// jeśli stosujemy switch / case w starym stylu z dwukropkiem,
// to można zgrupować case'y dla których jest jednakowa odpowiedź
// i nie pisać między nimi break
switch
(
miesiac
)
{
case
"styczeń"
:
case
"marzec"
:
case
"maj"
:
case
"lipiec"
:
case
"sierpień"
:
case
"październik"
:
case
"grudzień"
:
JOptionPane
.
showMessageDialog
(
null
,
"Ten miesiąc ma 31 dni"
);
break
;
case
"luty"
:
JOptionPane
.
showMessageDialog
(
null
,
"Ten miesiąc ma 28/29 dni"
);
break
;
case
"kwiecień"
:
case
"czerwiec"
:
case
"wrzesień"
:
case
"listopad"
:
JOptionPane
.
showMessageDialog
(
null
,
"Ten miesiąc ma 30 dni"
);
break
;
default
:
JOptionPane
.
showMessageDialog
(
null
,
"Niepoprawny miesiąc"
,
"Błąd"
,
JOptionPane
.
ERROR_MESSAGE
);
}
}
}
src/main/java/gotowe/p03_instrukcje/c_switch/IleDniMaMiesiac3.java
0 → 100644
View file @
70982f41
package
gotowe
.
p03_instrukcje
.
c_switch
;
import
javax.swing.JOptionPane
;
public
class
IleDniMaMiesiac3
{
public
static
void
main
(
String
[]
args
)
{
String
miesiac
=
JOptionPane
.
showInputDialog
(
"Podaj nazwę miesiąca"
);
// Od Java 14 w jednym case można podać wiele wartości po przecinku
switch
(
miesiac
)
{
case
"styczeń"
,
"marzec"
,
"maj"
,
"lipiec"
,
"sierpień"
,
"październik"
,
"grudzień"
->
JOptionPane
.
showMessageDialog
(
null
,
"Ten miesiąc ma 31 dni"
);
case
"kwiecień"
,
"czerwiec"
,
"wrzesień"
,
"listopad"
->
JOptionPane
.
showMessageDialog
(
null
,
"Ten miesiąc 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
,
"Ten miesiąc ma 29 dni"
);
}
else
{
JOptionPane
.
showMessageDialog
(
null
,
"Ten miesiąc ma 28 dni"
);
}
}
default
->
JOptionPane
.
showMessageDialog
(
null
,
"Niepoprawny miesiąc"
,
"Błąd"
,
JOptionPane
.
ERROR_MESSAGE
);
}
}
}
src/main/java/gotowe/p03_instrukcje/c_switch/IleDniMaMiesiac5.java
0 → 100644
View file @
70982f41
package
gotowe
.
p03_instrukcje
.
c_switch
;
import
javax.swing.JOptionPane
;
public
class
IleDniMaMiesiac5
{
public
static
void
main
(
String
[]
args
)
{
try
{
String
miesiac
=
JOptionPane
.
showInputDialog
(
"Podaj nazwę miesiąca"
);
int
ileDni
=
switch
(
miesiac
)
{
// w ramach switch expression, jeśli po wybraniu case'a wiemy od razu, jaki ma być wynik,
// to po prostu piszemy go za -> strzałką
case
"styczeń"
,
"marzec"
,
"maj"
,
"lipiec"
,
"sierpień"
,
"październik"
,
"grudzień"
->
31
;
case
"kwiecień"
,
"czerwiec"
,
"wrzesień"
,
"listopad"
->
30
;
// ale jeśli w danym case jest więkcej kroków do wykonania,
// to wynik switcha zwracamy za pomocą słowa yield
case
"luty"
->
{
int
rok
=
Integer
.
parseInt
(
JOptionPane
.
showInputDialog
(
"Podaj rok"
));
if
(
rok
%
4
==
0
&&
rok
%
100
!=
0
||
rok
%
400
==
0
)
{
yield
29
;
}
else
{
yield
28
;
}
}
default
->
throw
new
IllegalArgumentException
(
"Niepoprawny miesiąc"
);
};
JOptionPane
.
showMessageDialog
(
null
,
"Miesiąc "
+
miesiac
+
" ma "
+
ileDni
+
" dni."
);
}
catch
(
Exception
e
)
{
JOptionPane
.
showMessageDialog
(
null
,
e
.
getMessage
(),
"Błąd"
,
JOptionPane
.
ERROR_MESSAGE
);
}
// przy okazji - nowe instrukcje Javy mają status "identyfikatora o specjalym znaczeniu" a nie "słowa kluczowego"
// to znaczy, że w innych miejscach działają jak zwykłe nazwy; mogą być używane np. dla zmiennych
boolean
yield
=
true
;
var
var
=
15
;
if
(
yield
)
{
JOptionPane
.
showMessageDialog
(
null
,
var
);
}
}
}
src/main/java/gotowe/p03_instrukcje/c_switch/Switch1.java
deleted
100644 → 0
View file @
e4ffb433
package
gotowe
.
p03_instrukcje
.
c_switch
;
import
javax.swing.JOptionPane
;
public
class
Switch1
{
public
static
void
main
(
String
[]
args
)
{
String
tekst
=
JOptionPane
.
showInputDialog
(
"Podaj numer dnia tygodnia"
);
int
numer
=
Integer
.
parseInt
(
tekst
);
switch
(
numer
)
{
case
1
:
System
.
out
.
println
(
"poniedziałek"
);
case
2
:
System
.
out
.
println
(
"wtorek"
);
case
3
:
System
.
out
.
println
(
"środa"
);
case
4
:
System
.
out
.
println
(
"czwartek"
);
case
5
:
System
.
out
.
println
(
"piątek"
);
System
.
out
.
println
(
"czyli weekendu początek"
);
case
6
:
System
.
out
.
println
(
"sobota"
);
case
7
:
System
.
out
.
println
(
"niedziela"
);
default
:
System
.
out
.
println
(
"niepoprawny numer dnia tygodnia"
);
}
System
.
out
.
println
(
"Koniec programu"
);
}
}
src/main/java/gotowe/p03_instrukcje/c_switch/Switch3.java
deleted
100644 → 0
View file @
e4ffb433
package
gotowe
.
p03_instrukcje
.
c_switch
;
import
java.util.Random
;
import
javax.swing.JOptionPane
;
public
class
Switch3
{
public
static
void
main
(
String
[]
args
)
{
String
tekst
=
JOptionPane
.
showInputDialog
(
"Podaj numer dnia tygodnia"
);
int
numer
=
Integer
.
parseInt
(
tekst
);
final
int
SOBOTA
=
6
;
// stała
// final int SOBOTA = new Random().nextInt(10);
switch
(
numer
)
{
case
3
:
System
.
out
.
println
(
"środa"
);
break
;
case
1
:
System
.
out
.
println
(
"poniedziałek"
);
break
;
case
2
:
System
.
out
.
println
(
"wtorek"
);
break
;
default
:
System
.
out
.
println
(
"niepoprawny numer dnia tygodnia"
);
break
;
case
4
:
System
.
out
.
println
(
"czwartek"
);
break
;
case
2
+
3
:
System
.
out
.
println
(
"piątek"
);
break
;
case
SOBOTA:
System
.
out
.
println
(
"sobota"
);
// tu nie ma break i wypisze się sobota niedziela
case
7
:
System
.
out
.
println
(
"niedziela"
);
}
System
.
out
.
println
(
"Koniec programu"
);
}
}
src/main/java/gotowe/p03_instrukcje/c_switch/Switch4.java
deleted
100644 → 0
View file @
e4ffb433
package
gotowe
.
p03_instrukcje
.
c_switch
;
import
javax.swing.JOptionPane
;
public
class
Switch4
{
static
String
nazwaDniaTygodnia
(
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
(
"Niepoprawny numer dnia tygodnia"
);
}
}
public
static
void
main
(
String
[]
args
)
{
String
tekst
=
JOptionPane
.
showInputDialog
(
"Podaj numer dnia tygodnia"
);
try
{
int
numer
=
Integer
.
parseInt
(
tekst
);
String
nazwa
=
nazwaDniaTygodnia
(
numer
);
System
.
out
.
println
(
"Ten dzień to "
+
nazwa
);
}
catch
(
Exception
wylapanyWyjatek
)
{
System
.
out
.
println
(
"Wystąpił wyjątek "
+
wylapanyWyjatek
);
}
System
.
out
.
println
(
"Koniec programu"
);
}
}
src/main/java/gotowe/p03_instrukcje/c_switch/Switch5.java
deleted
100644 → 0
View file @
e4ffb433
package
gotowe
.
p03_instrukcje
.
c_switch
;
public
class
Switch5
{
static
int
ileDniMaMiesiac
(
String
nazwa
)
{
switch
(
nazwa
)
{
case
"styczeń"
:
case
"marzec"
:
case
"maj"
:
case
"lipiec"
:
case
"sierpień"
:
case
"październik"
:
case
"grudzień"
:
return
31
;
case
"kwiecień"
:
case
"czerwiec"
:
case
"wrzesień"
:
case
"listopad"
:
return
30
;
case
"luty"
:
return
28
;
// case null się nie skompiluje
// case null:
// return 0;
default
:
return
0
;
}
}
public
static
void
main
(
String
[]
args
)
{
System
.
out
.
println
(
ileDniMaMiesiac
(
"styczeń"
));
System
.
out
.
println
(
ileDniMaMiesiac
(
"luty"
));
System
.
out
.
println
(
ileDniMaMiesiac
(
"listopad"
));
System
.
out
.
println
();
// takie bajery nie działają:
System
.
out
.
println
(
ileDniMaMiesiac
(
"Lipiec"
));
System
.
out
.
println
(
ileDniMaMiesiac
(
" lipiec "
));
System
.
out
.
println
(
ileDniMaMiesiac
(
"*ec"
));
System
.
out
.
println
(
ileDniMaMiesiac
(
"%ec"
));
System
.
out
.
println
(
ileDniMaMiesiac
(
""
));
System
.
out
.
println
(
ileDniMaMiesiac
(
null
));
// NPE
}
}
src/main/java/gotowe/p03_instrukcje/c_switch/Switch6.java
deleted
100644 → 0
View file @
e4ffb433
package
gotowe
.
p03_instrukcje
.
c_switch
;
public
class
Switch6
{
public
static
void
main
(
String
[]
args
)
{
byte
bb
=
100
;
// Wartości podawane w case muszą być zgodne z typem parametru switch-a.
// W przypadku liczb oznacza to także, że liczba musi mieścić się w zakresie,
switch
(
bb
)
{
case
100
:
System
.
out
.
println
(
"100"
);
break
;
//NK case 200: System.out.println("200"); break;
}
short
ss
=
100
;
switch
(
ss
)
{
case
100
:
System
.
out
.
println
(
"100"
);
break
;
case
200
:
System
.
out
.
println
(
"200"
);
break
;
case
4000
:
System
.
out
.
println
(
"4000"
);
break
;
//NK case 33000: System.out.println("100"); break;
}
char
cc
=
'A'
;
switch
(
cc
)
{
case
'A'
:
System
.
out
.
println
(
"AAA"
);
break
;
case
120
:
System
.
out
.
println
(
"BBB"
);
break
;
// case 10 : System.out.println("10"); break;
case
0xA
:
System
.
out
.
println
(
"0xA"
);
break
;
//NK case 65 : System.out.println("CCC"); break;
//NK case -1 : System.out.println("DDD"); break;
case
64000
:
System
.
out
.
println
(
"EEE"
);
break
;
//NK case 66000: System.out.println("FFF"); break;
}
/*
long l = 27L;
// nie ma switch na typach long, float, double
switch(l) {
case 27L : System.out.println("long 27");
}
*/
}
}
src/main/java/gotowe/p03_instrukcje/c_switch/Switch8.java
deleted
100644 → 0
View file @
e4ffb433
package
gotowe
.
p03_instrukcje
.
c_switch
;
public
class
Switch8
{
public
static
void
main
(
String
[]
args
)
{
int
x
=
2
;
switch
(
x
)
{
// to jest po prostu operacja arytmetyczna (dokładnie "suma bitowa")
// nie ma to żadnego szczególnego znaczenia dla switch-a
// w tym konkretnym miejscu to wylicza się do wartości 3
case
2
|
3
:
System
.
out
.
println
(
"2 | 3"
);
break
;
//NK case 3:
// System.out.println("3");
case
2
:
// bo to nie jest naruszenie unikalności
System
.
out
.
println
(
"2"
);
break
;
default
:
System
.
out
.
println
(
"default"
);
}
}
}
src/main/java/gotowe/p03_instrukcje/c_switch/SwitchNaObiektach.java
0 → 100644
View file @
70982f41
package
gotowe
.
p03_instrukcje
.
c_switch
;
import
java.io.File
;
import
java.time.LocalDate
;
public
class
SwitchNaObiektach
{
/* W Java 21 pojawiły się kolejne możliwości switcha:
https://openjdk.org/jeps/441.
* - case null jako legalny warunek
* - rozróżnianie obiektów wg ich typu
* - klauzula when z warunkiem logicznym
*/
public
static
void
main
(
String
[]
args
)
{
Object
jakisObiekt
;
// jakisObiekt = "owca";
// jakisObiekt = "koza";
// jakisObiekt = "";
// jakisObiekt = new File("sciezka/do/pliku.txt");
jakisObiekt
=
LocalDate
.
of
(
1997
,
8
,
19
);
switch
(
jakisObiekt
)
{
case
String
s
when
s
.
startsWith
(
"o"
)
->
System
.
out
.
println
(
"To jest napis na o:"
+
s
);
case
String
s
when
s
.
startsWith
(
"k"
)
->
System
.
out
.
println
(
"To jest napis na k:"
+
s
);
case
String
s
when
s
.
equalsIgnoreCase
(
"java"
)
->
System
.
out
.
println
(
"To jest napis JAVA"
);
case
String
s
->
System
.
out
.
println
(
"To jest inny napis: "
+
s
);
case
File
f
->
System
.
out
.
println
(
"To jest plik "
+
f
.
getAbsolutePath
());
case
LocalDate
dt
->
System
.
out
.
println
(
"To jest data "
+
dt
+
" (dzień tygodnia "
+
dt
.
getDayOfWeek
()
+
")"
);
case
null
->
System
.
out
.
println
(
"Nie ma nic"
);
default
->
System
.
out
.
println
(
"Nie wiem co to jest. Ale klasą jest "
+
jakisObiekt
.
getClass
());
}
}
}
src/main/java/gotowe/p03_instrukcje/c_switch/SwitchString1.java
0 → 100644
View file @
70982f41
package
gotowe
.
p03_instrukcje
.
c_switch
;
import
javax.swing.JOptionPane
;
public
class
SwitchString1
{
// To jest sprawdzanie, czy String jest nullem, kompatybilne z wersjami Javy od 7 do 20
// Gdybyśmy nie mieli tego if i do switch trafiłaby wartość null,
// to zostałby wyrzucony wyjątek NPE (niezależnie od tego, czy w tym switchu jest default, jakie są case'y itd)
public
static
void
main
(
String
[]
args
)
{
String
jezyk
=
JOptionPane
.
showInputDialog
(
"Jaki jest twój ulubiony język programowania?"
);
if
(
jezyk
==
null
)
{
JOptionPane
.
showMessageDialog
(
null
,
"Brak odpowiedzi"
);
}
else
switch
(
jezyk
)
{
case
"Java"
->
JOptionPane
.
showMessageDialog
(
null
,
"Tak, to jest najlepszy język"
);
case
"Python"
->
JOptionPane
.
showMessageDialog
(
null
,
"Fajnie, ale to nie to"
);
// jbc, pusty string nie jest tym samym co null
case
""
->
JOptionPane
.
showMessageDialog
(
null
,
"O co ci chodzi?"
);
default
->
JOptionPane
.
showMessageDialog
(
null
,
"Nie wiem, nie wypowiem się"
);
}
}
}
src/main/java/gotowe/p03_instrukcje/c_switch/SwitchString2.java
0 → 100644
View file @
70982f41
package
gotowe
.
p03_instrukcje
.
c_switch
;
import
javax.swing.JOptionPane
;
public
class
SwitchString2
{
public
static
void
main
(
String
[]
args
)
{
// Dopiero od Java 21 można napisać case null jako oddzielny przypadek do sprawdzenia w switchu
// (kompilator wymaga też wtedy użycia default)
String
jezyk
=
JOptionPane
.
showInputDialog
(
"Jaki jest twój ulubiony język programowania?"
);
switch
(
jezyk
)
{
case
"Java"
->
JOptionPane
.
showMessageDialog
(
null
,
"Tak, to jest najlepszy język"
);
case
"Python"
->
JOptionPane
.
showMessageDialog
(
null
,
"Fajnie, ale to nie to"
);
// jbc, pusty string nie jest tym samym co null
case
""
->
JOptionPane
.
showMessageDialog
(
null
,
"O co ci chodzi?"
);
case
null
->
JOptionPane
.
showMessageDialog
(
null
,
"Brak odpowiedzi"
);
default
->
JOptionPane
.
showMessageDialog
(
null
,
"Nie wiem, nie wypowiem się"
);
}
}
}
src/main/java/gotowe/p06_funkcje/importowanie/Imporcik1.java
0 → 100644
View file @
70982f41
package
gotowe
.
p06_funkcje
.
importowanie
;
import
java.util.List
;
public
class
Imporcik1
{
public
static
void
main
(
String
[]
args
)
{
// W tej wersji wprost importuję java.util.List
// Wówczas List oznacza oryginalną listę z pakietu java.util.
List
<
String
>
list
=
List
.
of
(
"Ala"
,
"Ela"
,
"Ola"
,
"Ula"
);
System
.
out
.
println
(
list
.
getClass
());
System
.
out
.
println
(
list
);
// do własnej listy z bieżącego pakietu muszę odwołać się nazwą kwalifikowaną
p09_importowanie
.
List
<
String
>
patrykList
=
p09_importowanie
.
List
.
of
(
"Patryk"
,
"Tomek"
,
"Wiktor"
);
System
.
out
.
println
(
patrykList
);
// do prawdziwej listy też zawsze mogę się nazwą kwalifikowaną
java
.
util
.
List
<
String
>
utilList
=
java
.
util
.
List
.
of
(
"java"
,
"util"
,
"list"
);
System
.
out
.
println
(
utilList
);
}
}
src/main/java/gotowe/p06_funkcje/importowanie/Imporcik2.java
0 → 100644
View file @
70982f41
package
gotowe
.
p06_funkcje
.
importowanie
;
import
java.util.*
;
public
class
Imporcik2
{
public
static
void
main
(
String
[]
args
)
{
// W tej wersji importuję java.util.*
// Wówczas List oznacza lokalna listę z bieżącego pakietu.
List
<
String
>
list
=
List
.
of
(
"Ala"
,
"Ela"
,
"Ola"
,
"Ula"
);
System
.
out
.
println
(
list
.
getClass
());
System
.
out
.
println
(
list
);
// mogę też odwołać się nazwą kwalifikowaną
p09_importowanie
.
List
<
String
>
patrykList
=
p09_importowanie
.
List
.
of
(
"Patryk"
,
"Tomek"
,
"Wiktor"
);
System
.
out
.
println
(
patrykList
);
// do prawdziwej listy muszę się nazwą kwalifikowaną
java
.
util
.
List
<
String
>
utilList
=
java
.
util
.
List
.
of
(
"java"
,
"util"
,
"list"
);
System
.
out
.
println
(
utilList
);
}
}
src/main/java/gotowe/p06_funkcje/importowanie/List.java
0 → 100644
View file @
70982f41
package
gotowe
.
p06_funkcje
.
importowanie
;
import
java.util.Arrays
;
import
java.util.stream.Collectors
;
import
java.util.stream.Stream
;
/* To jest fejkowa wersja listy, którą tworzę, aby w programach Imporcik1 i Imporcik2
* pokazać, która klasa jest używana przez kompilator w zależności od sytuacji.
*/
public
class
List
<
T
>
{
private
final
Object
[]
tablica
;
private
List
(
T
[]
elems
)
{
tablica
=
Arrays
.
copyOf
(
elems
,
elems
.
length
);
}
public
static
<
T
>
List
<
T
>
of
(
T
...
elems
)
{
return
new
List
<>(
elems
);
}
@Override
public
String
toString
()
{
return
Stream
.
of
(
tablica
)
.
map
(
Object:
:
toString
)
.
collect
(
Collectors
.
joining
(
", "
,
"ListaPatryka{"
,
"}"
));
}
public
T
get
(
int
i
)
{
if
(
i
<
0
||
i
>=
tablica
.
length
)
{
throw
new
IndexOutOfBoundsException
(
i
);
}
return
(
T
)
tablica
[
i
];
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment