Conditions (Control Structure 1) — แบบฝึกทบทวน
. . .
Note
ครอบคลุม: เงื่อนไข (relational, in, logical) · if · if-else · if-elif-else · nested if ทบทวนเนื้อหาเต็มได้ที่ Module 5 👈
เลือกคำตอบที่ถูกต้อง — เฉลยจะปรากฏเมื่อกดถัดไป
5 > 3 ให้ผลเป็นชนิดใด?
A. int
B. bool
C. str
Tip
ตอบ: B — relational operator ให้ผลเป็น bool (True)
== กับ = ต่างกันอย่างไร?
A. เหมือนกัน
B. == เปรียบเทียบ, = กำหนดค่า
C. == กำหนดค่า, = เปรียบเทียบ
Important
ตอบ: B — == คือ เปรียบเทียบ (ได้ bool), = คือ กำหนดค่า (assign) — อย่าสับสน!
'a' in 'cat' ให้ผลใด?
A. True
B. False
C. error
Tip
ตอบ: A — in ตรวจว่ามี 'a' อยู่ใน 'cat' หรือไม่ → True
True and False ให้ผลใด?
A. True
B. False
C. error
Tip
ตอบ: B — and เป็นจริงเมื่อ ทั้งคู่ เป็น True
not (5 > 3) ให้ผลใด?
A. True
B. False
C. error
Tip
ตอบ: B — 5 > 3 เป็น True แล้ว not True = False
x = 7 — 0 < x < 10 ให้ผลใด?
A. True
B. False
C. error
Tip
ตอบ: A — Python รองรับ chained comparison = (0 < x) and (x < 10) → True
โครงสร้าง if ที่ถูกต้องต้องมีอะไร?
A. : ท้ายเงื่อนไข + ย่อหน้า ในบรรทัดถัดไป
B. ; ท้ายบรรทัด
C. { } ครอบ
Tip
ตอบ: A — Python ใช้ : แล้ว ย่อหน้า (indentation) บอกขอบเขตของบล็อก
พิมพ์อะไร?
A. A
B. B
C. C
D. ทั้งหมด
Important
ตอบ: B — if-elif-else ทำงาน เพียงสาขาเดียว — x>10 เท็จ, x>3 จริง → B
x = 4 — x % 2 == 0 ใช้ตรวจสอบอะไร?
A. x เป็นเลขคู่
B. x หารด้วย 2 ลงตัวกี่ครั้ง
C. x มากกว่า 2
Tip
ตอบ: A — เศษการหาร 2 เท่ากับ 0 → เป็น เลขคู่
age = 20 — age >= 18 and age < 60 ให้ผลใด?
A. True
B. False
C. error — ไม่สามารถเชื่อม 2 เงื่อนไขด้วย and ได้
Tip
ตอบ: A — ทั้งสองเงื่อนไขจริง (20>=18 และ 20<60) → and ได้ True
เติมโค้ดในช่อง ____ แล้วกด Run
เติมเงื่อนไขให้ตรวจว่า score ผ่าน (≥ 50) หรือไม่
ตรวจว่า n เป็น เลขคู่หรือคี่
ใช้ if-elif-else ตัดเกรด: >=80 → A, >=50 → B, นอกนั้น → F
ใช้ in ตรวจว่าผลไม้ที่พิมพ์มา อยู่ในรายการ หรือไม่
รวมเงื่อนไขด้วย and: ผ่านเมื่อคะแนน ทั้ง 2 วิชา ≥ 50
Nested if — ตรวจว่าตัวเลขเป็นบวก และเป็นเลขคู่หรือคี่
โค้ดจะพิมพ์อะไร? — ทายก่อน แล้วกดถัดไปดูเฉลย
Tip
ผลลัพธ์: 6 — 5 > 3 เป็นจริง → เข้าบล็อก x += 1 → x = 6
Important
ผลลัพธ์: B — if-elif-else ทำเพียงสาขาเดียว — 72>=80 เท็จ, 72>=50 จริง → B
ไล่ดูว่าโค้ดเข้าเงื่อนไขไหน
result เป็นอะไร? ไล่ทีละเงื่อนไข
| เงื่อนไข | จริง/เท็จ |
|---|---|
n > 0 |
? |
n % 2 == 0 |
? |
Tip
| เงื่อนไข | จริง/เท็จ |
|---|---|
n > 0 (8 > 0) |
จริง → เข้า nested if |
n % 2 == 0 (0 == 0) |
จริง |
→ result = "บวก-คู่"
โค้ดผิดตรงไหน — ทำไม
ผิดตรงไหน?
Important
ผิด: ใช้ = (กำหนดค่า) ในเงื่อนไข → SyntaxError · การเปรียบเทียบต้องใช้ == แก้: if score == 50:
ผิดตรงไหน?
Important
ผิด: ลืม : ท้ายเงื่อนไข if → SyntaxError แก้: if age >= 18: แล้วย่อหน้าบรรทัดถัดไป
ฝึกเพิ่ม — if-elif ทำสาขาเดียว & nested if
Important
ผลลัพธ์:
A
done
if เป็นจริงแล้ว → ข้าม elif ทั้งหมด · ส่วน print("done") อยู่นอก if จึงทำเสมอ
result เป็นอะไร? ไล่ทีละเงื่อนไข
| เงื่อนไข | จริง/เท็จ |
|---|---|
score >= 50 |
? |
score >= 40 |
? |
Tip
| เงื่อนไข | จริง/เท็จ |
|---|---|
score >= 50 (45>=50) |
เท็จ → เข้า else |
score >= 40 (45>=40) |
จริง |
→ result = "ซ่อม"
เงื่อนไขกับเกณฑ์ความปลอดภัย/มาตรฐาน
Important
ผลลัพธ์: เสี่ยง — safety factor = 250/180 ≈ 1.39 ซึ่ง < 1.5 → ไม่ผ่านเกณฑ์
เติมเงื่อนไขตรวจว่า PM2.5 เกินมาตรฐาน (> 50)
Important
ผลลัพธ์: เฝ้าระวัง — 85>=90 เท็จ, 85>=70 จริง → หยุดที่สาขานี้ (if-elif ทำสาขาเดียว)
เงื่อนไขซับซ้อน — รวม logical operator และหลายสาขา
ปีอธิกสุรทิน = หารด้วย 4 ลงตัว แต่ไม่ลงตัวด้วย 100 หรือ ลงตัวด้วย 400 — เติมเงื่อนไข
Important
ผลลัพธ์: 2 คำตอบ — \(d = (-5)^2 - 4(1)(6) = 25 - 24 = 1 > 0\) → มี 2 คำตอบจริง
ไม่มี ____ ให้เติม · ไม่บอกว่าต้องใช้ if/elif กี่ชั้น — ตัดสินใจโครงสร้างเอง
รับความยาว 3 ด้าน a, b, c แล้วบอกว่าเป็น ด้านเท่า / หน้าจั่ว / ด้านไม่เท่า หรือ ไม่เป็นสามเหลี่ยม
คิดก่อน: เป็นสามเหลี่ยมได้ ก็ต่อเมื่อผลบวกของด้านสองด้านใด ๆ มากกว่า ด้านที่เหลือ (ต้องเช็กครบ 3 คู่) — ตรวจ “เป็นสามเหลี่ยมไหม” ก่อน แล้วค่อยดูชนิด
ค่าไฟคิดแบบ ขั้นบันได (ก้าวหน้า) ตามจำนวนหน่วย units:
จงคำนวณค่าไฟรวม
คิดก่อน: แต่ละขั้นคิดเฉพาะส่วนที่เกินของขั้นก่อนหน้า ไม่ใช่เอาราคาขั้นเดียวคูณทั้งหมด
ทบทวนเนื้อหาเต็มได้ที่ Module 5
🏠 259201 — Module 5 ทบทวน | ภาควิชาวิศวกรรมคอมพิวเตอร์ คณะวิศวกรรมศาสตร์ มหาวิทยาลัยเชียงใหม่