การใช้ when เป็นนิพจน์
ส่งคืนค่าจาก when
การใช้ when เป็นนิพจน์ เป็นบทเรียน Kotlin Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Kotlin Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Kotlin Academy มีบทเรียนทั้งหมด 4 บทเรียน
when ในฐานะนิพจน์
when ของ Kotlin เป็นมากกว่าคำสั่งสวิตช์ เพราะเป็นนิพจน์ ซึ่งหมายความว่าสามารถสร้างค่าเพื่อนำไปกำหนดให้ตัวแปรหรือคืนค่าได้
จึงทำให้ตรรกะการแยกแขนงกระชับและอ่านง่าย
การคืนค่า
เมื่อใช้เป็นนิพจน์ แต่ละแขนงจะระบุผลลัพธ์ ค่าของแขนงที่ตรงเงื่อนไขจะกลายเป็นผลลัพธ์ทั้งหมดของ when
fun main() {
val day = 3
val name = when (day) {
1 -> "Monday"
2 -> "Tuesday"
3 -> "Wednesday"
else -> "Other"
}
println(name)
}ต้องมี else
เมื่อใช้เป็นนิพจน์ when ต้องครอบคลุมทุกกรณี สำหรับค่าทั่วไป นั่นหมายความว่าต้องมีแขนง else
หากไม่มีแขนงนี้ คอมไพเลอร์จะรับประกันไม่ได้ว่าจะมีการสร้างค่า
fun grade(score: Int): String = when {
score >= 90 -> "A"
score >= 80 -> "B"
else -> "C"
}
fun main() {
println(grade(85))
}หลายค่าในแต่ละแขนง
คั่นค่าหลายค่าด้วยจุลภาคเพื่อให้ใช้แขนงเดียวกัน
วิธีนี้สะอาดกว่าการเขียนส่วนเนื้อหาเดิมซ้ำ
fun main() {
val day = 6
val type = when (day) {
1, 2, 3, 4, 5 -> "Weekday"
6, 7 -> "Weekend"
else -> "Invalid"
}
println(type)
}when โดยไม่มีอาร์กิวเมนต์
ละหัวข้อเงื่อนไขออก แล้วแต่ละแขนงจะกลายเป็นเงื่อนไขบูลีน
วิธีนี้ใช้แทนสายคำสั่ง if/else if ได้ด้วยบล็อกที่เป็นระเบียบ
fun main() {
val temp = 18
val feel = when {
temp < 0 -> "Freezing"
temp < 15 -> "Cold"
temp < 25 -> "Mild"
else -> "Hot"
}
println(feel)
}ช่วงค่าในแขนง
แขนงสามารถตรวจสอบช่วงค่าด้วย in
จึงใช้แสดงกลุ่มช่วงตัวเลขได้อย่างเป็นธรรมชาติ
fun main() {
val score = 73
val band = when (score) {
in 0..59 -> "Fail"
in 60..79 -> "Pass"
in 80..100 -> "Excellent"
else -> "Invalid"
}
println(band)
}การตรวจสอบชนิดข้อมูลในแขนง
แขนงสามารถตรวจสอบชนิดข้อมูลด้วย is
ผลลัพธ์ของแต่ละแขนงอาจแตกต่างกัน และ when จะคืนชนิดข้อมูลร่วม
fun describe(x: Any): String = when (x) {
is Int -> "Integer"
is String -> "Text"
else -> "Unknown"
}
fun main() {
println(describe(42))
println(describe("hi"))
}บล็อกของแขนง
แขนงสามารถเป็นบล็อกที่มีคำสั่งหลายรายการได้ นิพจน์สุดท้ายในบล็อกจะเป็นค่าของบล็อกนั้น
fun main() {
val n = 5
val result = when {
n > 0 -> {
val doubled = n * 2
"Positive, doubled is " + doubled
}
else -> "Non-positive"
}
println(result)
}การคืนค่า when โดยตรง
ฟังก์ชันสามารถคืนค่านิพจน์ when ได้โดยตรงด้วยเนื้อหาฟังก์ชันแบบนิพจน์เดียว
นี่เป็นรูปแบบ Kotlin ที่พบบ่อยและสะอาดมาก
fun sign(n: Int): String = when {
n > 0 -> "positive"
n < 0 -> "negative"
else -> "zero"
}
fun main() {
println(sign(-4))
}การเก็บหัวข้อเงื่อนไข
คุณสามารถประกาศหัวข้อเงื่อนไขภายใน when เพื่อให้ใช้งานได้ในแขนงต่าง ๆ
วิธีนี้ทำให้ขอบเขตการใช้งานของค่าชั่วคราวแคบลงอย่างเหมาะสม
fun describeLength(text: String): String = when (val len = text.length) {
0 -> "empty"
in 1..5 -> "short (" + len + ")"
else -> "long (" + len + ")"
}
fun main() {
println(describeLength("hello"))
}นำทุกอย่างมาประกอบกัน
ในฐานะนิพจน์ when เป็นตัวสร้างค่าที่ทรงพลัง:
- แต่ละแขนงจะระบุผลลัพธ์
elseทำให้ครอบคลุมทุกกรณี- รองรับจุลภาค ช่วงค่า ชนิดข้อมูล และบล็อก
fun ticketPrice(age: Int): Int = when {
age < 6 -> 0
age < 18 -> 10
age >= 65 -> 8
else -> 15
}
fun main() {
println(ticketPrice(4))
println(ticketPrice(70))
}ตรวจสอบความเข้าใจ
ทดสอบความเข้าใจของคุณเกี่ยวกับการใช้ when เป็นนิพจน์
สรุปทบทวน
คุณได้เรียนรู้การใช้ when เป็นนิพจน์:
- คืนค่าของแขนงที่ตรงเงื่อนไข
- ต้องมี
elseเพื่อให้ครอบคลุมทุกกรณี - รองรับจุลภาค ช่วงค่า การตรวจสอบชนิดข้อมูล และบล็อก
ถัดไป คุณจะได้ดูว่าสมาร์ตแคสต์ช่วยให้คอมไพเลอร์จำกัดชนิดข้อมูลให้แคบลงได้อย่างไร
เรียนรู้ Kotlin ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 51
- บทเรียน
- 203
คำถามที่พบบ่อย
บทเรียน “การใช้ when เป็นนิพจน์” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การใช้ when เป็นนิพจน์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Kotlin Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Kotlin Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การใช้ when เป็นนิพจน์”
ส่งคืนค่าจาก when คุณปฏิบัติ Kotlin Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Kotlin Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Kotlin Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “การใช้ when เป็นนิพจน์” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Kotlin Academy นี้ได้ไหม
ได้ บทเรียน Kotlin Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การใช้ when เป็นนิพจน์
- การแปลงชนิดข้อมูลอัจฉริยะ
- ตัวดำเนินการ is และ as
- when แบบครอบคลุมทุกกรณี