ການຊ່ວຍເຫຼືອ LibreOffice 26.2
ເອີ້ນໃຊ້ຊັບຣູທີນ (subroutine) ທີ່ກຳນົດໂດຍປ້າຍຊື່ (label) ພາຍໃນ Sub ຫຼື Function. ຄຳສັ່ງທີ່ຕາມຫຼັງປ້າຍຊື່ຈະຖືກປະມວນຜົນຈົນກວ່າຈະຮອດຄຳສັ່ງ Return ຖັດໄປ. ຫຼັງຈາກນັ້ນ, ໂປຣແກຣມຈະດຳເນີນການຕໍ່ດ້ວຍຄຳສັ່ງທີ່ຕາມຫຼັງຄຳສັ່ງ GoSub.
GoSub label[:]
ປ້າຍຊື່ (label): ຕົວລະບຸແຖວທີ່ບອກວ່າຈະດຳເນີນການຕໍ່ຢູ່ໃສ. ຂອບເຂດຂອງປ້າຍຊື່ຈະຢູ່ພາຍໃນຣູທີນ (routine) ທີ່ມັນສັງກັດຢູ່.
ຄຳສັ່ງ GoSub ຈະເອີ້ນໃຊ້ຊັບຣູທີນພາຍໃນທີ່ກຳນົດໂດຍປ້າຍຊື່ຈາກພາຍໃນຊັບຣູທີນ ຫຼື ຟັງຊັນ. ຊື່ຂອງປ້າຍຊື່ຕ້ອງລົງທ້າຍດ້ວຍເຄື່ອງໝາຍຈ້ຳສອງເມັດ (":").
Sub/Function foo
' ຄຳສັ່ງຕ່າງໆ
GoSub label
' ຄຳສັ່ງຕ່າງໆ
Exit Sub/Function
label:
' ຄຳສັ່ງຕ່າງໆ
Return
End Sub/Function
ຖ້າໂປຣແກຣມພົບຄຳສັ່ງ Return ທີ່ບໍ່ໄດ້ຕາມຫຼັງ GoSub, LibreOffice Basic ຈະສະແດງຂໍ້ຄວາມຜິດພາດ. ໃຊ້ Exit Sub ຫຼື Exit Function ເພື່ອຮັບປະກັນວ່າໂປຣແກຣມຈະອອກຈາກ Sub ຫຼື Function ກ່ອນທີ່ຈະໄປຮອດຄຳສັ່ງ Return ຖັດໄປ.
ຕົວຢ່າງຕໍ່ໄປນີ້ສະແດງໃຫ້ເຫັນການໃຊ້ GoSub ແລະ Return. ໂດຍການປະມວນຜົນສ່ວນຂອງໂປຣແກຣມສອງຄັ້ງ, ໂປຣແກຣມຈະຄິດໄລ່ຮາກຂັ້ນສອງຂອງສອງຕົວເລກທີ່ຜູ້ໃຊ້ປ້ອນເຂົ້າ.
Sub ExampleGoSub
Dim iInputa As Single
Dim iInputb As Single
Dim iInputc As Single
iInputa = Int(InputBox("ປ້ອນຕົວເລກທຳອິດ: ","NumberInput"))
iInputb = Int(InputBox("ປ້ອນຕົວເລກທີສອງ: ","NumberInput"))
iInputc=iInputa
GoSub SquareRoot
Print "ຮາກຂັ້ນສອງຂອງ";iInputa;" ແມ່ນ";iInputc
iInputc=iInputb
GoSub SquareRoot
Print "ຮາກຂັ້ນສອງຂອງ";iInputb;" ແມ່ນ";iInputc
Exit Sub
SquareRoot:
iInputc=sqr(iInputc)
Return
End Sub