Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
alx_java1
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
alx_java1
Commits
5d119f40
Commit
5d119f40
authored
Aug 06, 2023
by
Patryk Czarnik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
switch miesiac
parent
201577b3
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
167 additions
and
0 deletions
+167
-0
IleDniMaMiesiac1.java
src/main/java/gotowe1/p05_switch/IleDniMaMiesiac1.java
+56
-0
IleDniMaMiesiac2.java
src/main/java/gotowe1/p05_switch/IleDniMaMiesiac2.java
+42
-0
IleDniMaMiesiac3.java
src/main/java/gotowe1/p05_switch/IleDniMaMiesiac3.java
+33
-0
IleDniMaMiesiac4.java
src/main/java/gotowe1/p05_switch/IleDniMaMiesiac4.java
+36
-0
No files found.
src/main/java/gotowe1/p05_switch/IleDniMaMiesiac1.java
0 → 100644
View file @
5d119f40
package
gotowe1
.
p05_switch
;
import
javax.swing.JOptionPane
;
/* Program dla podanej nazwy miesiąca (np "styczeń")
* ma wypisać, ile dni ma ten miesiąc. */
public
class
IleDniMaMiesiac1
{
// Wersja poprawna, ale napisana w bardzo prymitywny sposób - każda sytuacja opisana oddzielnym casem , jest duplikacja kodu
public
static
void
main
(
String
[]
args
)
{
String
miesiac
=
JOptionPane
.
showInputDialog
(
"Podaj nazwę miesiąca"
);
switch
(
miesiac
)
{
case
"styczeń"
:
JOptionPane
.
showMessageDialog
(
null
,
"31 dni"
);
break
;
case
"luty"
:
JOptionPane
.
showMessageDialog
(
null
,
"28 lub 29 dni"
);
break
;
case
"marzec"
:
JOptionPane
.
showMessageDialog
(
null
,
"31 dni"
);
break
;
case
"kwiecień"
:
JOptionPane
.
showMessageDialog
(
null
,
"30 dni"
);
break
;
case
"maj"
:
JOptionPane
.
showMessageDialog
(
null
,
"31 dni"
);
break
;
case
"czerwiec"
:
JOptionPane
.
showMessageDialog
(
null
,
"30 dni"
);
break
;
case
"lipiec"
:
JOptionPane
.
showMessageDialog
(
null
,
"31 dni"
);
break
;
case
"sierpień"
:
JOptionPane
.
showMessageDialog
(
null
,
"31 dni"
);
break
;
case
"wrzesień"
:
JOptionPane
.
showMessageDialog
(
null
,
"30 dni"
);
break
;
case
"październik"
:
JOptionPane
.
showMessageDialog
(
null
,
"31 dni"
);
break
;
case
"listopad"
:
JOptionPane
.
showMessageDialog
(
null
,
"30 dni"
);
break
;
case
"grudzień"
:
JOptionPane
.
showMessageDialog
(
null
,
"31 dni"
);
break
;
default
:
JOptionPane
.
showMessageDialog
(
null
,
"Nieznany miesiąc "
+
miesiac
,
"Błąd"
,
JOptionPane
.
ERROR_MESSAGE
);
}
}
}
src/main/java/gotowe1/p05_switch/IleDniMaMiesiac2.java
0 → 100644
View file @
5d119f40
package
gotowe1
.
p05_switch
;
import
javax.swing.JOptionPane
;
public
class
IleDniMaMiesiac2
{
// Wersja z tradycyjnym switch z : i break. - działa w starych wersjach Javy oraz w C
// W tej wersji staramy się grupować przypadki z taką samą odpowiedzią.
// Jeśli napiszemy wiele case-ów bez break, to dla każdego z nich wykonamy taką samą rzecz.
// W przypadku lutego zadajemy dodatkowe pytanie o rok przestępny.
public
static
void
main
(
String
[]
args
)
{
String
miesiac
=
JOptionPane
.
showInputDialog
(
"Podaj nazwę miesiąca"
);
switch
(
miesiac
)
{
case
"styczeń"
:
case
"marzec"
:
case
"maj"
:
case
"lipiec"
:
case
"sierpień"
:
case
"październik"
:
case
"grudzień"
:
JOptionPane
.
showMessageDialog
(
null
,
"31 dni"
);
break
;
case
"kwiecień"
:
case
"czerwiec"
:
case
"wrzesień"
:
case
"listopad"
:
JOptionPane
.
showMessageDialog
(
null
,
"30 dni"
);
break
;
case
"luty"
:
if
(
JOptionPane
.
showConfirmDialog
(
null
,
"Czy to jest rok przestępny?"
)
==
JOptionPane
.
YES_OPTION
)
{
JOptionPane
.
showMessageDialog
(
null
,
"29 dni"
);
}
else
{
JOptionPane
.
showMessageDialog
(
null
,
"28 dni"
);
}
break
;
default
:
JOptionPane
.
showMessageDialog
(
null
,
"Nieznany miesiąc "
+
miesiac
,
"Błąd"
,
JOptionPane
.
ERROR_MESSAGE
);
}
}
}
src/main/java/gotowe1/p05_switch/IleDniMaMiesiac3.java
0 → 100644
View file @
5d119f40
package
gotowe1
.
p05_switch
;
import
javax.swing.JOptionPane
;
public
class
IleDniMaMiesiac3
{
// Wersja dla Javy 14:
// Dzięki użyciu -> nie trzeba pisać break.
// W przypadku lutego zadajemy dodatkowe pytanie o rok przestępny - trzeba to umieścić w {bloku}.
// Od Javy 14 wiele wartości można umieścić w jednym case rozdzielając przecinkiem ,
// W tej wersji wielkość liter jest ignorowana, dzięki temu, że napis użytkownika zamieniamy na małe litery
// I usuwamy niepotrzebne spacje.
public
static
void
main
(
String
[]
args
)
{
String
miesiac
=
JOptionPane
.
showInputDialog
(
"Podaj nazwę miesiąca"
);
switch
(
miesiac
.
strip
().
toLowerCase
())
{
case
"styczeń"
,
"marzec"
,
"maj"
,
"lipiec"
,
"sierpień"
,
"październik"
,
"grudzień"
->
JOptionPane
.
showMessageDialog
(
null
,
"31 dni"
);
case
"kwiecień"
,
"czerwiec"
,
"wrzesień"
,
"listopad"
->
JOptionPane
.
showMessageDialog
(
null
,
"30 dni"
);
case
"luty"
->
{
if
(
JOptionPane
.
showConfirmDialog
(
null
,
"Czy to jest rok przestępny?"
)
==
JOptionPane
.
YES_OPTION
)
{
JOptionPane
.
showMessageDialog
(
null
,
"29 dni"
);
}
else
{
JOptionPane
.
showMessageDialog
(
null
,
"28 dni"
);
}
}
default
->
JOptionPane
.
showMessageDialog
(
null
,
"Nieznany miesiąc "
+
miesiac
,
"Błąd"
,
JOptionPane
.
ERROR_MESSAGE
);
}
}
}
src/main/java/gotowe1/p05_switch/IleDniMaMiesiac4.java
0 → 100644
View file @
5d119f40
package
gotowe1
.
p05_switch
;
import
javax.swing.JOptionPane
;
public
class
IleDniMaMiesiac4
{
/* W tej wersji używamy "switch expression".
* W prostych przypadkach (30 lub 31 dni) wystarczy wpisac wartośc za strzałką ->
* W przypadku lutego mamy dodatkowego if-a i aby w tej sytuacji (generalnie: gdy mamy {blok kodu})
* to wynik switcha zwracamy za pomocą słowa kluczowego yield.
*
* Z kolei w przypadku niepoprawnej nazwy nie ma żadnego wyniku - zamiast tego wyrzucamy wyjątek.
*/
public
static
void
main
(
String
[]
args
)
{
String
miesiac
=
JOptionPane
.
showInputDialog
(
"Podaj nazwę miesiąca"
);
int
ileDni
=
switch
(
miesiac
.
strip
().
toLowerCase
())
{
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
,
"Miesiąc "
+
miesiac
+
" ma "
+
ileDni
+
" dni"
);
}
}
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