Kata Kunci yield
Hasilkan nilai dari blok switch
Kata Kunci yield adalah pelajaran Java Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Java Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Java Academy mencakup 4 pelajaran total.
Saat Satu Baris Tidak Cukup
Sebuah cabang panah seperti case 1 -> 42; langsung mengembalikan nilai. Namun, bagaimana jika sebuah cabang memerlukan beberapa pernyataan sebelum menghasilkan nilainya? Di situlah yield digunakan.
Kata Kunci yield
Di dalam cabang berbentuk blok { }, kata kunci yield menyediakan nilai yang dihasilkan oleh ekspresi switch. Anggaplah ini seperti return, tetapi untuk cabang switch.
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);
}
}yield di Dalam Blok
Anda dapat menjalankan logika apa pun di dalam blok sebelum memanggil yield. Hal terakhir yang dilakukan blok tersebut seharusnya adalah melakukan yield terhadap sebuah nilai.
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);
}
}Menggabungkan Cabang Panah dan Blok
Satu ekspresi switch dapat menggabungkan cabang panah sederhana dengan cabang berbentuk blok yang menggunakan yield. Gunakan bentuk yang paling sesuai untuk setiap kasus.
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);
}
}Perhitungan Sebelum yield
Cabang berbentuk blok ideal digunakan saat sebuah nilai perlu dihitung. Di sini, kita menjumlahkan digit sebelum melakukan yield terhadap totalnya.
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);
}
}yield dan return
yield hanya keluar dari cabang switch dan memberikan sebuah nilai. return akan keluar dari seluruh metode. Di dalam blok ekspresi switch, gunakan yield.
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));
}
}yield dalam Gaya Lama dengan Titik Dua
switch bergaya titik dua juga dapat menjadi ekspresi dengan menggunakan yield, bukan break. Setiap bagian berlabel menghasilkan nilainya dengan yield.
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);
}
}yield Bersyarat
Sebuah cabang berbentuk blok dapat berisi logika if dan menghasilkan nilai yang berbeda pada jalur yang berbeda. Setiap jalur harus menghasilkan sebuah nilai.
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);
}
}Menghasilkan Objek
yield dapat digunakan dengan tipe apa pun, termasuk objek. Di sini, sebuah cabang membuat dan menghasilkan hasil StringBuilder sebagai String.
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);
}
}Kiat Keterbacaan
Utamakan cabang panah sederhana jika satu nilai sudah cukup. Gunakan blok dan yield hanya saat sebuah cabang benar-benar memerlukan pernyataan tambahan. Dengan begitu, switch Anda tetap rapi.
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);
}
}Contoh Lengkap
Menggabungkan semuanya: pemeta status bergaya HTTP yang menggunakan cabang panah dan cabang berbentuk blok.
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);
}
}Pemeriksaan Singkat
Di dalam cabang ekspresi switch dengan beberapa pernyataan, kata kunci apa yang menyediakan nilai hasilnya?
Ringkasan
Anda telah mempelajari kata kunci yield:
yieldmenghasilkan nilai dari cabang berbentuk blok- Fungsinya seperti
return, tetapi hanya untuk cabangswitch - Gabungkan cabang panah dan cabang blok dengan bebas
- Setiap jalur kode dalam blok harus melakukan
yield - Gunakan blok hanya saat diperlukan pernyataan tambahan
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Kata Kunci yield” gratis?
Ya — teks lengkap “Kata Kunci yield” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Java Academy, upgrade ke CoddyKit PRO. Kursus Java Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Kata Kunci yield”?
Hasilkan nilai dari blok switch Kamu berlatih Java Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Java Academy?
Tidak diperlukan pengalaman sebelumnya. Java Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Kata Kunci yield” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Java Academy ini?
Ya. Setiap pelajaran Java Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.