4.4.2.2
ชุดคำสั่ง
FOR....NEXT ในภาษา OpenOffice / LibreOffice Basic
เป็นกลุ่มชุดคำสั่งควบคุมการทำงานซ้ำๆ
หรือควบคุมการวนซ้ำ
ที่ทราบจำนวนครั้งในการวนซ้ำที่แน่นอน
โดยมีรูปแบบชุดคำสั่งดังนี้
รูปแบบชุดคำสั่ง
:
For
counter=start To end [Step step]
statement
block
[Exit
For]
statement
block
Next
[counter]
|
โดยที่
counter หมายถึง
ตัวแปรควบคุมจำนวนครั้งในการวนซ้ำ
start หมายถึง
ตัวเลขเริ่มต้นของการควบคุมการวนซ้ำ
end หมายถึง
ตัวเลขสุดท้ายของการควบคุมการวนซ้ำ
step หมายถึง
เลขระบุจำนวนของตัวนับที่เพิ่มขึ้นหรือลดลง
statement
block หมายถึง
กลุ่มชุดคำสั่งที่ต้องการให้ดำเนินการซ้ำๆ
[Exit
For] หมายถึง
ชุดคำสั่งบังคับให้ออกจากการวนซ้ำ
ตัวอย่างที่
4-5
: ตัวอย่างการใช้คำสั่ง
FOR...NEXT
....
Dim i As
Integer
For i = 1 To
10
....
'ชุดคำสั่งภายใน
For
Loop
....
Next i
....
|
ในตัวอย่าง
4-5
ตัวแปร
i
ทำหน้าที่เป็นตัวแปรควบคุมการวนซ้ำหรือตัวนับ
โดยเริ่มต้นที่ 1
(start) และทำการประมวลผลชุดคำสั่งภายในขอบเขตของ
For
... Next จนกระทั้ง
i
มีค่าเท่ากับ
1
ในกรณีที่ไม่ได้ระบุค่าในส่วน
step
ของชุดคำสั่งไว้
ค่าของตัวแปร i
จะเพิ่มขึ้นทีละ
1
สำหรับค่าของส่วน
step
หรือเลขระบุจำนวนของตัวนับที่เพิ่มขึ้นหรือลดลง
ซึ่งส่วน step
ดังกล่าวสามารถเป็นได้ทั้งค่าบวก,
ค่าลบ
หรือ เป็นเลขทศนิยมก็ได้
ตัวอย่างเช่น
ตัวอย่างที่
4-6
: การใช้คำสั่ง
FOR...NEXT
กรณีส่วน
step
ไม่ใช่จำนวนเลขจำนวนเต็ม
....
Dim i As
Integer
For i = 1 To
10 Step 0.5
....
'ชุดคำสั่งภายใน
For
Loop
....
Next i
....
|
ในตัวอย่างนี้ค่าของตัวแปร
i
จะเพิ่มจาก
1
ทีละ
0.5
จนกระทั้งถึง
10
ส่วนในตัวอย่างที่
4-7
จะเป็นกรณีที่
ค่าในส่วน Step
เป็นค่าลบ
หรือนับถอยหลัง
ตัวอย่างที่
4-7
: การใช้คำสั่ง
FOR...NEXT
กรณีส่วน
step
เป็นจำนวนเต็มลบ
หรือเป็นการนับถอยหลัง
....
Dim i As
Integer
For i = 20
To 6 Step -2
....
'ชุดคำสั่งภายใน
For
Loop
....
Next i
....
|
ในตัวอย่าง
4-7
ค่าของตัวแปร
i
หรือตัวนับจะเริ่มที่
20
และจะลดลงทีละ
2
จนกว่าค่า
i
จะมีค่าเป็น
6
จึงจะออกจากการวนซ้ำ
ตัวอย่างที่
4-8
: ตัวอย่างการใช้
FOR...NEXT
ในการเรียงข้อมูลแบบ
Bubble
Sort
SUB
Example04_05
Dim
sSampleText(1 To 7) As String 'เก็บข้อความ
7
ชุด
Dim
iCounter1 As Integer 'ใช้ควบคุมการวนซ้ำ
For...Next
ชุดแรก
Dim
iCounter2 As Integer 'ใช้ควบคุมการวนซ้ำ
For...Next
ชุดที่สอง
Dim sTemp As
String 'ใช้เก็บข้อความชั่วคราว
Dim
sDisplayText As String 'เก็บข้อความแสดงผลการเรียง
sSampleText(1)
= "ช้าง"
sSampleText(2)
= "ม้า"
sSampleText(3)
= "กระบือ"
sSampleText(4)
= "สุนัข"
sSampleText(5)
= "สุกร"
sSampleText(6)
= "กิ้งก่า"
sSampleText(7)
= "งู"
'เนื้อหาก่อนจัดเรียง
sDisplayText
= "<ก่อนจัดเรียง>"
+ Chr(13)
For
iCounter1 = 1 To 7
sDisplayText
= sDisplayText + sSampleText(iCounter1) + Chr(13)
Next
iCounter1
'เรียงข้อมูลแบบ
Bubble
Sort
For
iCounter1 = 1 To 7
For
iCounter2 = iCounter1 + 1 To 7
If
sSampleText(iCounter1) > sSampleText(iCounter2) Then
Temp =
sSampleText(iCounter1)
sSampleText(iCounter1)
= sSampleText(iCounter2)
sSampleText(iCounter2)
= Temp
End If
Next
iCounter2
Next
iCounter1
'แสดงผลการเรียง
sDisplayText
= sDisplayText + Chr(13) + "<หลังจัดเรียง>"
+ Chr(13)
For
iCounter1 = 1 To 7
sDisplayText
= sDisplayText + sSampleText(iCounter1) + Chr(13)
Next
iCounter1
MsgBox
sDisplayText
END
SUB
|
![]() |
รูปที่
4-6
ตัวอย่างการทำงานของซับรูทีน
Example04_05
|
4.4.2.3
ชุดคำสั่ง
WHILE...WEND
เป็นกลุ่มชุดคำสั่งควบคุมการทำงานซ้ำๆ
หรือควบคุมการวนซ้ำ
ที่ไม่ทราบจำนวนครั้งในการวนซ้ำที่แน่นอน
โดยจะทำการตรวจสอบเงื่อนไข
กรณีที่เงื่อนไขยังคงให้ค่าเป็นค่าจริง
(True)
ชุดคำสั่งที่อยู่ภายในขอบเขตของ
While
... Wend จะถูกประมวลผลซ้ำๆ
และจะยุติการประมวลผลกลุ่มชุดคำสั่งดังกล่าว
เมื่อเงื่อนไขให้ค่าเป็นค่าเท็จ
(False)
โดยจะโปรแกรมจะข้ามไปทำงานที่คำสั่ง
Wend
และออกจาก
While....Wend
ลักษณะการทำงานของ
While....Wend
จะคล้ายกับการใช้คำสั่ง
Do
While .... Loop แต่จะต่างกันตรงที่
การควบคุมการทำงานซ้ำๆ
ด้วยชุดคำสั่ง While
... Wend จะไม่สามารถใช้คำสั่ง
Exit
ในการบังคับออกจากการวนซ้ำได้
สำหรับรูปแบบชุดคำสั่ง While
... Wend มีดังนี้
รูปแบบชุดคำสั่ง
:
While
condition
[Statements]
Wend
|
โดยที่
condition หมายถึง
ชุดคำสั่งตรวจสอบเงื่อนไขเพื่อควบคุมการวนซ้ำ
Statements
หมายถึง
กลุ่มชุดคำสั่งที่ต้องการให้เกิดการทำงานซ้ำๆ
4.4.3
กลุ่มชุดคำสั่งควบคุมทิศทางของโปรแกรมแบบอื่นๆ
ภาษา
OpenOffice
/ LibreOffice Basic
จะมีคำสั่งที่เกี่ยวข้องกับการควบคุมทิศทางการทำงานของโปรแกรมอื่นๆ
เช่นเดียวกับภาษา Basic
ทั่วไป
ยกตัวอย่างเช่น ชุดคำสั่ง
GoSub
... Return, ชุดคำสั่ง
GoTo,
ชุดคำสั่ง
On...GoSub
หรือคำสั่ง
Call
เป็นต้น
แต่อย่างไรก็ดี
ชุดคำสั่งบางชุดคำสั่งเป็นชุดคำสั่งที่ไม่เหมาะสำหรับการเขียนโปรแกรมยุคใหม่
เช่นการใช้คำสั่ง GoTo
เป็นต้น
แต่ที่ต้องมีชุดคำสั่งเหล่านี้ไว้
เนื่องจากเป็นคำสั่งมาตรฐานของภาษา
Basic
บันทึกประจำวันที่
21
มิถุนายน
พ.ศ.
2557 (2014)
เวลา
|
เหตุการณ์
|
|||
06:00 น. | ตื่นนอน อ่านวารสารเกษตรกรรมธรรมชาติ | |||
07:00 น. |
ลองเดินเครื่องปั่นไฟสูบน้ำ
ปรากฏว่าสูบไม่ขึ้น
ต้องลงไปทำความสะอาดฟุตวาวในเขื่อน
|
|||
07:45 น. |
|
|||
08:15 น. | เดินเครื่องปั่นไฟ สูบน้ำใช้ | |||
09:00 น. | งานของกิจกรรมอาชีพ กสิกรรมธรรมชาติ แปลงสวนปาล์ม (8/2557):ตัดปาล์ม | |||
12:00 น. |
|
|||
13:00 น. | งานของกิจกรรมอาชีพ กสิกรรมธรรมชาติ แปลงสวนปาล์ม (8/2557):ตัดปาล์ม | |||
17:00 น. |
งานของกิจกรรมอาชีพ
กสิกรรมธรรมชาคิ แปลงคอกวัว
(5/2557):ขายกล้วยหักมุก
|
|||
17:30 น. | Note: พี่เทียนและน้องชายแวะมาที่บ้านนำกบไปทำกับข้าว | |||
18:15 น. | อาบน้ำ ทำบัญชีครัวเรือน ทำบันทึกประจำวันของวันก่อน | |||
19:00 น. |
งานของกิจกรรมอาชีพ
งานอินเตอร์เน็ต
(18/2557):ทำต้นฉบับบทความ
เชื่อมต่ออินเตอร์เน็ต
แก่ไข Affiliate
Program
|
|||
20:15 น. |
|
|||
20:15 น. | งานของกิจกรรมอาชีพ งานอินเตอร์เน็ต (18/2557):เชื่อมต่ออินเตอร์เน็ต แก่ไข Affiliate Program | |||
21:00 น. | เข้านอน |