[Tutorial] สอนภาษา .Net :: ตอนที่ 06 เงื่อนไข ทำซ้ำและ Goto

เงื่อนข้อตกลงในการใช้บทความนี้

เงี่อนไข


มีอยู่ 2 ประเภทได้แก่
1. เงื่อนไขทางตัวเลข >, <, =
2. เงื่อนไขทางตรรกศาสตร์ and or xor not

ผลของเงื่อนไข Boolean นั้นก็คือ True, False ซึ่งจริงคือ "ไม่เป็น 0" กับ "เป็น 0"

ซึ่งรูปแบบการใช้งานนั้นมีหลากหลายวิธี
If A > B And B > C Then
...
End If

สามารถเขียนแบบบรรทัดเดียวได้
If A > B And B > C Then ...

หรือจะใช้แบบคืนค่าก็ยังได้
Dim X = If(A > B, 1, 0)

ทำซ้ำ


For
เป็นการวนซ้ำแบบระบุค่าได้ ซึ่งสามารถระบุเพิ่มขึ้นหรือลดลงตามจำนวนรอบ

For Lap = 1 to 10
'Lap ก็จะมีค่าเป็น 1 ในรอบแรก และ 2 ในรอบที่สอง เพิ่มขึ้นไปเรื่อยๆ ในแต่ละรอบจนกระทั้งมีค่าเท่ากับ 10
Next

For Each เป็นการวนแบบอ้างอิงจำนวนห้องใน Array ซึ่งในแต่ละรอบนั้นก็จะเป็นห้องต่างๆ ใน Array นั่นเอง

For Each Word In {"Hi", "Hello", "World"}
'Word รอบแรกจะอ้างอิงไปยัง "Hi" รอบที่สองก็ "Hello" และ ก็คือ "World"
Next

Do
เป็นการอ้างอิงแบบระบุเงื่อนไขหรือไม่ก็ได้

ตัวอย่างการวนแบบไม่สิ้นสุด
Do
Loop

While คือเงื่อนไขสำหรับ Do ซึ่งจะหยุดวนเมื่อเงื่อนไขได้ผลเป็น False
Until คือเงื่อนไขสำหรับ Do ซึ่งจะหยุดวนเมื่อเงื่อนไขได้ผลเป็น True

ทั้งนี้ While และ Until สามารถวางไว้หลัง Do หรือ Loop ก็ได้แต่ต้องเลือกที่ไหนที่หนึ่ง แบบใดแบบหนึ่งนะครับ

ทำเมื่อยังมีชีวิต
Do While Me.IsAlive
...
Loop

ทำจนกว่าจะตาย
Do
...
Loop Until Me.IsDead



สำหรับท่านที่เคยเขียนโปรแกรมมาแล้ว



Goto


เป็นหนึ่งในคำสั่งที่โปรแกรมเมอร์ทั้งหลายไม่ว่าจะ VB.net หรือ C# เกลียดกันมาก
หลายคนถึงกับขนานนามว่า Goto is evil แต่แท้จริงแล้วเรากลับใช้มันอยู่โดยไม่รู้ตัวว่าใช้

Goto เป็นคำสั่งสำหรับการข้ามชุดคำสั่งใน Method จะใช้ประกอบกับ
Label ซึ่งเป็นปลายทางอ้างอิงในการข้ามชุดคำสั่งซึ่งจะอยู่ก่อนอยู่หลังคำสั่ง Goto ก็ได้ (อยู่ก่อนก็จะเป็นการย้อนกลับ อยู่หลังก็จะเป็นการข้าม)

Dim A = 0
Goto Jmp
A += 1
A += 1
A += 1
Jmp:
A += 1

แทนที่ A จะมีค่าเท่ากับ 4 เมื่อรันจบ โค๊ดจะข้ามบรรทัดต่างๆ จนกระทั้งไปถึงบรรทัด Jmp: เพราะคำสั่ง Goto ทำให้ A มีค่าเป็น 1

แล้วทำไมต้องรู้เกี่ยวกับ Goto ?
เพราะ Goto นั้นเป็นพื้นฐานของ If, for, do นั่นเองครับ
เนื่องจาก CIL นั้นไม่มีชุดคำสั่งระดับสูงๆ มีแค่ Goto ข้ามไปข้ามมา
ดังนี้ พื้นฐานของ Condition Statement และ Loop Statement จึงเป็น Goto


หากบทความนี้ถูกใจ เป็นประโยชน์ ขอรบกวนผู้อ่านกด [+] ด้วยนะครับ ขอบคุณครับ พาพันขอบคุณ
แก้ไขข้อความเมื่อ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่