Etiketli İfadeler
Coddy'nin Java Journey'sinin Mantık & Akış bölümünün bir parçası — ders 35 / 59.
Java'da etiket ifadeleri, kodunuzda belirli noktaları işaretlemenize ve bu etiketlerle break ve continue ifadeleri kullanarak akışı kontrol etmenize olanak tanır. Etiketler, iç içe döngülerle çalışırken özellikle faydalıdır.
Etiketli bir iç içe döngü oluşturun:
outer: for(int i = 0; i < 3; i++) {
for(int j = 0; j < 3; j++) {
if(i * j == 4) {
break outer;
}
}
}Etiket ile continue kullanın:
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);
}
}Görev
KolayfindNumber adında üç argüman alan bir metot oluşturun:
- Tamsayılerden oluşan 2D bir dizi (
grid) - Bulunacak bir tamsayı (
target) - İlk buluntudan sonra aramayı durdurup durdurulmayacağını belirleyen bir boolean (
breakEarly) Metot, hedef sayıyı aramak için etiketli bir döngü kullanmalı ve bulunduğu her pozisyonu yazdırmalı. Eğer breakEarly true ise, ilk buluntudan sonra durmalıdır. Her bulunan eleman şu formatta yazdırılmalı:Found at: rowIndex,colIndex
Kopya kağıdı
Java'da etiket ifadeleri, kodunuzda belirli noktaları işaretlemenize ve bu etiketlerle break ve continue ifadeleri kullanarak akışı kontrol etmenize olanak tanır.
Bir etiketle iç içe döngü oluşturun:
outer: for(int i = 0; i < 3; i++) {
for(int j = 0; j < 3; j++) {
if(i * j == 4) {
break outer;
}
}
}Bir etiketle continue kullanın:
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);
}
}Kendin dene
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) {
// Kodunuzu buraya yazın
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 2B dizi temsil eden JSON dizesini oku
String gridString = scanner.nextLine();
// Hedef sayıyı oku
int target = Integer.parseInt(scanner.nextLine());
// breakEarly bayrağını oku
boolean breakEarly = Boolean.parseBoolean(scanner.nextLine());
Type gridType = new TypeToken<int[][]>(){}.getType();
int[][] grid = new Gson().fromJson(gridString, gridType);
findNumber(grid, target, breakEarly);
}
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık & Akış bölümündeki tüm dersler
1Çok Boyutlu Diziler
2D Diziler Temelleri2D Dizi Elemanlarına Erişim2D Dizilerle İç İçe DöngülerÖzet - 2D DizilerMatris Toplama ve ÇıkarmaJagged Diziler3D Diziler ve ÖtesiYaygın 2D Dizi DesenleriÖzet - Diziler Hakkında Her Şey2HashMap Bölüm 1
HashMap Nedir?HashMap TanımlamaDeğerlere ErişimAnahtarın Varlığını Kontrol EtmeSözlükleri DeğiştirmeÖzet - HashMap3HashMap Bölüm 2
HashMap YöntemlerikeySet() ile YinelemeentrySet() ile Yinelemeİç İçe HashMapÖzet - Depo YönetimiÖzet - HashMap İşlemleri6İleri Akış Kontrolü
Etiketli İfadelerSwitch İfadesiDesen EşleştirmeKoruyucu Yan CümlelerÖzet - Akış Kontrolü9Proje - Benzersiz Kelime Sayacı
Metin Girişi ve DepolamaKelime İşleme