แบบฝึกหัด: บทที่ 4 - Control Flow
แบบฝึกหัดที่ 1: If/Else
เขียน function grade ที่:
- รับ
score: i32 - Return เกรดตามเกณฑ์:
- 80+ = “A”
- 70-79 = “B”
- 60-69 = “C”
- 50-59 = “D”
- ต่ำกว่า 50 = “F”
ดูเฉลย
fn grade(score: i32) -> &'static str {
if score >= 80 {
"A"
} else if score >= 70 {
"B"
} else if score >= 60 {
"C"
} else if score >= 50 {
"D"
} else {
"F"
}
}
fn main() {
println!("85 -> {}", grade(85)); // A
println!("72 -> {}", grade(72)); // B
println!("45 -> {}", grade(45)); // F
}
แบบฝึกหัดที่ 2: Loop
เขียน loop ที่:
- นับจาก 1 ถึง 5
- Print แต่ละเลข
- หยุดเมื่อถึง 5
ดูเฉลย
fn main() {
let mut count = 1;
loop {
println!("{}", count);
if count == 5 {
break;
}
count += 1;
}
}
แบบฝึกหัดที่ 3: While Loop
เขียนโค้ดที่:
- ใช้ while loop นับถอยหลังจาก 10 ถึง 1
- Print “Liftoff!” หลังจบ
ดูเฉลย
fn main() {
let mut n = 10;
while n > 0 {
println!("{}", n);
n -= 1;
}
println!("Liftoff!");
}
แบบฝึกหัดที่ 4: For Loop
เขียนโค้ดที่:
- สร้าง array
[10, 20, 30, 40, 50] - ใช้ for loop แสดงแต่ละค่าพร้อม index
ดูเฉลย
fn main() {
let numbers = [10, 20, 30, 40, 50];
for (index, value) in numbers.iter().enumerate() {
println!("Index {}: {}", index, value);
}
}
Output:
Index 0: 10
Index 1: 20
Index 2: 30
Index 3: 40
Index 4: 50
แบบฝึกหัดที่ 5: FizzBuzz
เขียน FizzBuzz:
- เลข 1 ถึง 20
- หาร 3 ลงตัว print “Fizz”
- หาร 5 ลงตัว print “Buzz”
- หารทั้งสองลงตัว print “FizzBuzz”
- ไม่ลงตัวทั้งคู่ print เลขนั้น
ดูเฉลย
fn main() {
for n in 1..=20 {
if n % 3 == 0 && n % 5 == 0 {
println!("FizzBuzz");
} else if n % 3 == 0 {
println!("Fizz");
} else if n % 5 == 0 {
println!("Buzz");
} else {
println!("{}", n);
}
}
}
👉 บทที่ 5