Poniżej zamieszczam przykłady programów, w których pokazane jest zastosowanie instrukcji warunkowych i pętli do sterowania wykonaniem programu.
Najpierw instrukcja warunkowa ’if’:
package net.javainfo.basics;
import java.util.Scanner;
// Przykład użycia pętli warunkowych
public class IfStatement {
public static void main(String[] args){
int age;
Scanner scanner = new Scanner(System.in);
System.out.println("Podaj swój wiek: ");
age = scanner.nextInt();
if(age < 18){ //if traktujemy jak słowo 'jeżeli'
System.out.printf("Masz %d lat - %s",age,"nie jesteś pełnoletni/a.");
}
else if (age == 18){ //w przeciwnym razie jeżeli
System.out.println("Właśnie osiągnąłeś/aś pełnoletność.");
}
else{ //w przeciwnym razie
System.out.printf("Jesteś pełnoletni/a już od %d lat", age - 18);
}
}
}
Kod źródłowy jest w miarę intuicyjny, niejasności opisałem w komentarzach w kodzie.
Teraz pętla nieokreślona ’while’:
package net.javainfo.basics;
//Przykład zastosowania pętli nieokreślonej ilością wykonania
public class Loop {
public static void main(String[] args){
int amount = 1;
while (amount <= 3){ //dopóki ta wartość jest prawdziwa
System.out.println(amount++);
}
do{ //wykonaj przynajmniej raz
System.out.println(amount++);
}while(amount <= 6);
}
}
Pętla określona ’for’:
package net.javainfo.basics;
//Przykład użycia pętli określonej
public class LoopSpecified {
public static void main(String[] args){
System.out.println("Zaczynamy odliczanie:");
for(int i = 10; i >= 0; --i){ //kolejno - inicjalizacja;warunek pętli; zmiana wartości licznika
System.out.printf("%d\n",i);
}
}
}
Teraz pora na ’switch’ czyli pole wielokierunkowego wyboru:
package net.javainfo.basics;
import java.util.Scanner;
//Użycie instrukcji/wyrażenia switch - wyboru wielokierunkowego (4 rodzaje)
public class MultiDirectionalSelection {
static int dayNumber;
public static int statementWithoutPassingControl(String dayOfWeek){
int dayNumber = switch (dayOfWeek){
case "Poniedziałek" -> {
yield 1; //słowo kluczowe yield zwraca wartość i przerywa działanie
}
case "Wtorek" -> 2;
default -> -1;
};
return dayNumber;
}
public static int instructionWithoutPassingControl(String dayOfWeek){
switch(dayOfWeek){
case "Środa" -> {return 3;}
case "Czwartek" -> {return 4;}
default -> {
return -1;
}
}
}
public static int statementWithPassingControl(String dayOfWeek){
int dayNumber = switch(dayOfWeek){
case "Piątek" : yield 5;
case "Sobota" : yield 6;
default: yield -1;
};
return dayNumber;
}
public static void instructionWithPassingControl(String dayOfWeek) {
switch (dayOfWeek) {
case "Niedziela":
dayNumber = 7;
break;
default:
break ;
}
}
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
String dayString;
do {
System.out.println("Podaj nazwę dnia tygodnia, a powiem Ci który to dzień liczbowo");
dayString = scanner.next();
switch(dayString) {
case "Poniedziałek","Wtorek" -> dayNumber = statementWithoutPassingControl(dayString);
case "Środa","Czwartek" -> dayNumber = instructionWithoutPassingControl(dayString);
case "Piątek", "Sobota" -> dayNumber = statementWithPassingControl(dayString);
case "Niedziela" -> instructionWithPassingControl(dayString);
default -> dayNumber = -1;
}
if(dayNumber != -1)
System.out.println(dayString + " jest to " + dayNumber + " dzień tygodnia");
}while(dayNumber != -1);
}
}
I na koniec przykład instrukcji przerywających przepływ sterowania:
package net.javainfo.basics;
//Przykład instrukcji przerwyających przepływ sterowania
public class BreakingInstruction {
public static void main(String[] args){
int n = 0;
int[] tab = new int[21];
boolean check = true;
finish: //etykieta
while(check){
for(int i = 0 ; i <= 20; ++i){
n++;
if(n == 5)
continue; //przerwanie bieżącej iteracji
if (n%2 != 0) {
tab[i] = n;
}
if(n == 11)
break finish; //przerwanie najbardziej zewnętrznej pętli i przejście do etykiety
}
check = false;
}
for(int i = 0; i < tab.length; ++ i){
System.out.print(tab[i] + " ");
}
}
}
Dodaj komentarz