yield Anahtar Sözcüğü
switch bloklarından değerler üretin
yield Anahtar Sözcüğü, CoddyKit'te ücretsiz bir Java Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Java Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Java Academy kursu toplamda 4 dersten oluşur.
Tek Satır Yetmediğinde
case 1 -> 42; gibi bir oklu dal doğrudan değer döndürür. Peki bir dalın değerini üretmeden önce birkaç deyim çalıştırması gerekirse ne olur? İşte burada yield devreye girer.
Değer Üretme Anahtar Sözcüğü
Bir blok dalının içinde { }, yield anahtar sözcüğü switch ifadesinin üreteceği değeri sağlar. Bunu return gibi, ancak bir switch dalı için düşünün.
public class Main {
public static void main(String[] args) {
int n = 3;
int result = switch (n) {
case 3 -> {
int squared = n * n;
yield squared;
}
default -> 0;
};
System.out.println(result);
}
}Blok İçinde Değer Üretme
yield çağrısından önce blok içinde istediğiniz mantığı çalıştırabilirsiniz. Blokta yapılacak son işlem bir değer yield etmek olmalıdır.
public class Main {
public static void main(String[] args) {
int amount = 250;
String label = switch (amount / 100) {
case 0 -> "small";
default -> {
System.out.println("Computing label...");
yield "large";
}
};
System.out.println(label);
}
}Oklu ve Blok Dallarını Birlikte Kullanma
Tek bir switch ifadesinde basit oklu dallar ile yield kullanan blok dalları birlikte kullanılabilir. Her durum için uygun olanı seçin.
public class Main {
public static void main(String[] args) {
int code = 2;
String msg = switch (code) {
case 1 -> "One";
case 2 -> {
String s = "T" + "wo";
yield s;
}
default -> "Other";
};
System.out.println(msg);
}
}Değer Üretmeden Önce Hesaplama
Blok dalları, bir değerin hesaplanması gerektiğinde idealdir. Burada toplamı üretmeden önce basamakları topluyoruz.
public class Main {
public static void main(String[] args) {
int category = 1;
int value = switch (category) {
case 1 -> {
int sum = 0;
for (int i = 1; i <= 5; i++) {
sum += i;
}
yield sum;
}
default -> 0;
};
System.out.println(value);
}
}Değer Üretme ve Geri Döndürme Karşılaştırması
yield yalnızca switch dalından çıkar ve bir değer verir. return ise tüm yöntemden çıkar. Bir switch ifadesinin bloğu içinde yield kullanın.
public class Main {
static int classify(int n) {
int rank = switch (n) {
case 0 -> 0;
default -> {
yield (n > 0) ? 1 : -1;
}
};
return rank;
}
public static void main(String[] args) {
System.out.println(classify(-7));
}
}Eski İki Nokta Biçiminde Değer Üretme
İki nokta biçimindeki switch yapısı da break yerine yield kullanılarak bir ifade olabilir. Her etiketli bölüm kendi değerini üretir.
public class Main {
public static void main(String[] args) {
int day = 2;
String name = switch (day) {
case 1: yield "Mon";
case 2: yield "Tue";
default: yield "Other";
};
System.out.println(name);
}
}Koşullu Değer Üretme
Bir blok dalı if mantığı içerebilir ve farklı yollarda farklı değerler üretebilir. Her yol bir değer üretmelidir.
public class Main {
public static void main(String[] args) {
int temp = 30;
String advice = switch (temp / 10) {
case 3 -> {
if (temp > 35) {
yield "Very hot";
}
yield "Warm";
}
default -> "Mild";
};
System.out.println(advice);
}
}Nesne Değerleri Üretme
yield, nesneler dahil her türle çalışır. Burada bir dal, bir StringBuilder sonucu oluşturup bunu String olarak üretir.
public class Main {
public static void main(String[] args) {
int count = 3;
String stars = switch (count) {
case 0 -> "";
default -> {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < count; i++) {
sb.append("*");
}
yield sb.toString();
}
};
System.out.println(stars);
}
}Okunabilirlik İpucu
Tek bir değer yeterli olduğunda basit oklu dalları tercih edin. Bir dal gerçekten ek deyimlere ihtiyaç duyduğunda blok ve yield kullanın. Böylece switch yapınız düzenli kalır.
public class Main {
public static void main(String[] args) {
int level = 2;
int xp = switch (level) {
case 1 -> 100;
case 2 -> {
int base = 100;
yield base * 2;
}
default -> 0;
};
System.out.println(xp);
}
}Eksiksiz Bir Örnek
Hepsini bir araya getirelim: hem oklu hem de blok dallarını kullanan HTTP tarzı bir durum eşleyici.
public class Main {
public static void main(String[] args) {
int status = 404;
String message = switch (status / 100) {
case 2 -> "Success";
case 4 -> {
String base = "Client error ";
yield base + status;
}
case 5 -> "Server error";
default -> "Unknown";
};
System.out.println(message);
}
}Hızlı Kontrol
Birden fazla deyim içeren switch ifadesi dalında, ortaya çıkan değeri hangi anahtar sözcük sağlar?
Özet
yield anahtar sözcüğünü öğrendiniz:
yield, bir blok dalından değer üretirreturngibidir, ancak yalnızca birswitchdalı için geçerlidir- Oklu ve blok dallarını serbestçe birlikte kullanın
- Bir bloktaki her kod yolu
yieldkullanmalıdır - Blokları yalnızca ek deyimler gerektiğinde kullanın
Sıkça Sorulan Sorular
“yield Anahtar Sözcüğü” dersi ücretsiz mi?
Evet — “yield Anahtar Sözcüğü” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Java Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Java Academy kursu toplamda 4 dersten oluşur.
“yield Anahtar Sözcüğü” dersinde ne öğreneceğim?
switch bloklarından değerler üretin Java Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Java Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Java Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“yield Anahtar Sözcüğü” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Java Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Java Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Ok Biçimli switch
- İfade Olarak switch
- yield Anahtar Sözcüğü
- Çok Etiketli Durumlar