Instrukcje etykietujące
Część sekcji Logika i przepływ sterowania ścieżki Java w Coddy. Lekcja 35 z 59.
Instrukcje etykiet w języku Java pozwalają oznaczać konkretne miejsca w kodzie i sterować przepływem za pomocą instrukcji break i continue z użyciem tych etykiet. Etykiety są szczególnie przydatne podczas pracy z zagnieżdżonymi pętlami.
Utwórz zagnieżdżoną pętlę z etykietą:
outer: for(int i = 0; i < 3; i++) {
for(int j = 0; j < 3; j++) {
if(i * j == 4) {
break outer;
}
}
}Użyj continue z etykietą:
firstLoop: for(int i = 0; i < 3; i++) {
for(int j = 0; j < 3; j++) {
if(j == 1) {
continue firstLoop;
}
System.out.println(i + "," + j);
}
}Wyzwanie
ŁatwyUtwórz metodę o nazwie findNumber, która przyjmuje trzy argumenty:
- Dwuwymiarową tablicę liczb całkowitych (
grid) - Liczbę całkowitą (
target), której należy szukać - Wartość logiczną (
breakEarly), która określa, czy wyszukiwanie ma się zakończyć po znalezieniu pierwszego wystąpienia. Metoda powinna używać pętli z etykietą do wyszukania liczby docelowej i wypisywać każdą pozycję, w której ją znaleziono. JeślibreakEarlyma wartość true, wyszukiwanie powinno zakończyć się po znalezieniu pierwszego wystąpienia. Każdy znaleziony element powinien być wypisany w formacie:Found at: rowIndex,colIndex
Spróbuj swoich sił
import java.util.Scanner;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
public class Main {
public static void findNumber(int[][] grid, int target, boolean breakEarly) {
// Wpisz tutaj swój kod
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Wczytaj ciąg JSON reprezentujący tablicę 2D
String gridString = scanner.nextLine();
// Wczytaj szukaną liczbę
int target = Integer.parseInt(scanner.nextLine());
// Wczytaj flagę breakEarly
boolean breakEarly = Boolean.parseBoolean(scanner.nextLine());
Type gridType = new TypeToken<int[][]>(){}.getType();
int[][] grid = new Gson().fromJson(gridString, gridType);
findNumber(grid, target, breakEarly);
}
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i przepływ sterowania
1Tablice wielowymiarowe
Podstawy tablic 2DDostęp do elementów tablic 2DPętle zagnieżdżone z tablicami 2DPodsumowanie — tablice 2DDodawanie i odejmowanie macierzyTablice postrzępioneTablice 3D i większeTypowe wzorce dla tablic 2DPodsumowanie — wszystko o tablicach2HashMap część 1
Czym jest HashMap?Deklarowanie HashMapDostęp do wartościSprawdzanie, czy klucz istniejeModyfikowanie słownikówPodsumowanie — HashMap3HashMap — część 2
Metody HashMapIterowanie za pomocą keySet()Iterowanie za pomocą entrySet()Zagnieżdżona HashMapPowtórka — zarządzanie magazynemPowtórka — operacje na HashMap6Zaawansowany przepływ sterowania
Instrukcje etykietująceWyrażenie switchDopasowywanie wzorcówKlauzule ochronnePowtórzenie — przepływ sterowania9Projekt — licznik unikalnych słów
Wprowadzanie i przechowywanie tekstuPrzetwarzanie słówPoćwicz samodzielnie: Kompilator Java online