Raccoon Game RPG รวมพลนักพัฒนา

RGSS & Ruby Lesson - Chapter 2

Go down

RGSS & Ruby Lesson - Chapter 2

ตั้งหัวข้อ by boyhit on Sat Oct 29, 2011 1:40 am

RGSS & Ruby Lesson - Chapter 2
บทที่สองนี้เราจะพูดถึงคำสั่งพื้นฐานต่างๆ รวมถึงประเภทของตัวแปร ซึ่งมีความจำเป็นอย่างยิ่งในการเขียนสคริปต์ที่ซับซ้อนยิ่งขึ้น

1. ตัวแปร และ ค่าคงที่ (Variables and Constants)
ตัว
แปรนั้นเป็นสิ่งที่จำเป็นอย่างยิ่งในการเขียนโปรแกรมใดๆก็ตาม
รวมถึงรูบี้สคริปต์เช่นกัน ส่วนค่าคงที่นั้น ขึ้นอยู่กับแต่ละโปรแกรม

ตัวแปรคืออะไร?
ตัว
แปรคือ “ชื่อ” ของข้อมูลที่เราจัดเก็บไว้ใน memory ของโปรแกรม
ในกรณีที่เราต้องการเก็บข้อมูลอะไรไว้ และเรียกใช้งานในภายหลัง
เราไม่จำเป็นต้องพิมพ์ข้อมูลนั้นๆ ทุกครั้ง
เพียงแต่เรียกชื่อของตัวแปรขึ้นมา

ตัวอย่าง : นาย A อายุ 14
และเก็บข้อมูลอายุตัวเองไว้ในตัวแปรชื่อ age_a ดังนั้น
หากเขาต้องการเรียกข้อมูลอายุของเขามาใช้งาน ก็เพียงแค่เรียกใช้ตัวแปร
age_a ไม่ต้องพิมพ์ 14 อีกครั้ง

ชื่อของตัวแปรนั้นมีกฎคือห้ามเป็น
ตัวพิมพ์ใหญ่ทั้งหมด และตัวแปรยัง case sensitive อีกด้วย นั่นหมายถึง
ตัวแปร doG กับ dog นั้นถือว่าเป็นคนละตัวกัน เพราะตัว G กับ g
CODE

ตัวอย่าง:
x = 9
y = 1
result = x + y
print result
จาก
ตัวอย่างจะเห็นว่า เราสร้างตัวแปร x ขึ้นมา และใส่ข้อมูล 9 เข้าไป
จากนั้นเราจึงสร้างตัวแปร y ขึ้นมา แล้วบรรจุเลข 1 ลงไป ส่วนตัวแปร result
นั้น เราใส่ผลลัพธ์ของ x บวกกับ y เข้าไป
แล้วสุดท้ายเราจึงสั่งให้โปรแกรม แสดงค่าที่บรรจุอยู่ใน result ซึ่งก็คือ
10 นั่นเอง

ลองทำดู : ลองสร้าง Event
ขึ้นมาและเขียนโค้ดเหล่านี้ใน Call Script ดู จากนั้นลองเปลี่ยนสิ่งต่างๆ
เล่นกับตัวแปรดู แล้วดูผลลัพธ์ที่เกิดขึ้น

ตัวแปรนั้นบรรจุข้อมูลได้หลายประเภท ไม่จำเป็นว่าจะต้องเป็นตัวเลขอย่างเดียว โดยการบรรจุข้อมูลให้ตัวแปรนั้นมีรูปแบบดังนี้

CODE

text = “โอย รูบี้สคริปต์งง ก่งก๊ง”
lottery = 1234567
sure = false
เครื่อง
หมาย “=” นั้น ไม่ได้แปลว่า “เท่ากับ” แต่หมายถึง
“นำข้อมูลฝั่งขวาของเครื่องหมาย มาบรรจุลงในตัวแปรฝั่งซ้าย” ดังนั้น
ในบรรทัดแรกจึงหมายถึง นำประโยค “โอย รูบี้สคริปต์งง ก่งก๊ง”
มาบรรจุไว้ในตัวแปร text บรรทัดสองหมายถึง นำจำนวน 1234567
บรรจุไว้ในตัวแปร lottery และบรรทัดสุดท้ายหมายถึง นำค่า false (ผิด
หรือไม่เป็นจริง เปรียบได้กับ สวิทช์ปิด) มาบรรจุไว้ในตัวแปร sure
(ก็จะแปลได้ว่า ไม่ชัวร์)

นอกจากนี้เรายังสามารถบรรจุข้อมูลแบบรวบรัดได้ดังนี้

CODE

a = b = c = 5
a,b = 5,6
บรรทัดแรก หมายถึง “บรรจุ จำนวน 5 ลงในตัวแปร c b และ a” ส่วนบรรทัดที่สองหมายถึง “บรรจุตัวแปร 5 ลงใน a แล้วบรรจุ 6 ลงใน b”
ประยุกต์ใช้ตัวแปร
เรามาลองดูคำสั่งต่างๆพื้นฐานที่น่าลองใช้เพื่อประยุกต์กับตัวแปรกันดีกว่า
คำสั่ง ผลลัพธ์
= บรรจุค่าลงในตัวแปร
+,-,*,/ บวก ลบ คูณ และหาร ตามลำดับ
p หรือ print ใช้ในการแสดงผลตัวแปรเป็นหน้าต่าง popup
#{ชื่อตัวแปร} ใช้ในการแสดงข้อมูลในตัวแปรร่วมกับประโยคเช่น p “ผลลัพธ์คือ” + #{result}
ชื่อตัวแปร.to_s เปลี่ยนตัวแปรประเภทจำนวนให้เป็นประเภทตัวอักษร(string)

ลองทำดู
: ลองสร้าง Event ขึ้นมาและเขียนโค้ดเหล่านี้ใน Call Script ดู
จากนั้นลองเปลี่ยนสิ่งต่างๆ เล่นกับตัวแปรดู แล้วดูผลลัพธ์ที่เกิดขึ้น


ประเภทของตัวแปร

1. Local Variables
ตัวแปรประเภท local นี้เริ่มต้นด้วยตัวอักษรตัวพิมพ์เล็ก ตัวแปรประเภทนี้จะทำงานภายใน method เท่านั้น

CODE


ตัวอย่าง:
Class Local_Variable
def method_1
x = 2
end
def method_2
x = 3
end
def method_3
x = 4
end
end

จาก
ตัวอย่างนี้ ตัวแปร x นั้นแม้จะชื่อ x เหมือนกัน แต่ค่าไม่เท่ากันในแต่ละ
method (หรือภายใน def) ถ้าเราลองพิมพ์ p x ในแต่ละ def ก็จะเข้าใจ

2. Instance Variables
ตัว
แปรประเภท instance นี้เริ่มต้นชื่อด้วย “@”
และตัวแปรนี้ต้องถูกสร้างภายใน method เท่านั้น
ตัวแปรประเภทนี้จะเชื่อมถึงกันกับทุกๆ method ใน class ที่มันถูกสร้างขึ้น



CODE


ตัวอย่าง:
Class Instance_Variable_1
def method_1
@x = 2
end
def method_2
@x = 3
end
def method_3
@x = 4
end
end
Class Instance_Variable_2
def method_1
@x = 4
end
def method_2
@x = 3
end
def method_3
@x = 2
end
end

ในกรณีนี้ ตัวแปร @x ใน class แรกนั้น สุดท้ายจะมีค่าเท่ากับ 4 แต่ใน
class สอง จะมีค่าเท่ากับ 2 ซึ่งตัวแปร @x ในทั้งสอง class นั้น
จะไม่เกี่ยวข้องกัน

3. Class Variables
ตัวแปรประเภทนี้
จะขึ้นต้นด้วย @@ โดยตัวแปรประเภทนี้จะต้องถูกสร้างขึ้นใน class
เท่านั้นและไม่ใช่ใน method ขอบเขตการทำงานจะเหมือนกับตัวแปร instance


CODE


ตัวอย่าง
class Class_Variable
@@class_variable=0
def initialize
@@class_variable+=1
end
end

จากตัวอย่าง ทุกครั้งที่เราสร้าง object ใน class นี้ขึ้นมา ตัวแปร
@@class_variable จะนับเพิ่มเรื่อยๆ เป็นการนับจำนวน object
ที่มันสร้างขึ้น


4. Global Variables
ตัวแปรประเภท
นี้เป็นตัวแปรที่เมื่อสร้างขึ้นมาครั้งนึงแล้ว
ทั้งโปรแกรมสามารถเรียกใช้งานถึงกันได้ การสร้างตัวแปรประเภทนี้จะต้องมี
“$” นำหน้าชื่อตัวแปรนั้นๆ

CODE

ตัวอย่าง
Class Instance_Variable_1
def initialize
$x = 0
end
end
Class Instance_Variable_2
def initialize
$x += 1
end
end

จากตัวอย่าง เมื่อเราเรียกใช้งาน class แรก ตัวแปร $x จะกลายเป็น 0 แต่เมื่อเรียกใช้งาน class ที่สอง ตัวแปร $x จะเพิ่มขึ้น 1

5. Constant
ค่า
คงที่เป็นตัวบรรจุข้อมูลที่เราไม่ต้องการให้เกิดการเปลี่ยนแปลงใดๆ หรือ
น้อยครั้งนักที่จะเปลี่ยนแปลงมัน เช่นค่าของ Pi = 3.14 หรือ
จำนวนวันในหนึ่งสัปดาห์ DAYS = 7 เป็นต้น
การประกาศตัวแปรนั้นต้องเป็นตัวพิมพ์ใหญ่ทั้งหมด และสามารถทำได้ทั้งนอก และ ใน class

CODE

ตัวอย่าง
A_CONSTANT=100

class Constant_Test_1
ANOTHER_CONSTANT=50

def initialize
print ANOTHER_CONSTANT
print A_CONSTANT
end

end

class Constant_Test_2

def initialize
print Constant_Test_1::ANOTHER_CONSTANT
print A_CONSTANT
end

end

class Constant_Test_3
A_CONSTANT+=1

def initialize
print A_CONSTANT
end

end

จาก
ตัวอย่าง เราประกาศค่าคงที่ A_CONSTANT ให้มีค่าเท่ากับ 100 และหลังจากนี้
A_CONSTANT จะมีค่าเท่ากับ 100 ตลอดไป ใน class Constant_Test_1
เรา
ประกาศค่าคงที่ ANOTHER_CONSTANT ให้มีค่าเท่ากับ 50
โดยตัวแปรนี้จะทำงานแค่ภายใน class Constant_Test_1 เท่านั้น เหมือนกับ
Class Variable

อย่างไรก็ตาม เราสามารถเข้าถึงค่าคงที่ของ class อื่นได้ด้วยคำสั่งนี้
ชื่อคลาส::ชื่อตัวแปร
ใน class Constant_Test_2 นั้น เราได้ทำการแสดงผลข้อมูลของ ANOTHER_CONSTANT ของ class Constant_Test_1 คำสั่งจึงเป็นดังนี้
print Constant_Test_1::ANOTHER_CONSTANT

ใน
class สุดท้าย เราทำการ +1 ให้กับค่าคงที่ A_CONSTANT
แต่ไม่ว่าเราจะเรียกใช้งาน class นี้กี่ครั้งก็ตาม
ค่าที่แสดงออกมาก็จะเท่ากับ 101 ไม่ใช่ 101 102 103 บวกทบกันไปเรื่อย
เพราะหลังจากบวกเสร็จ ค่า A_CONSTANT จะกลับมาเท่ากับ 100 ดังเดิม
เนื่องจากมันเป็นค่าคงที่

จบเรื่องของตัวแปรและค่าคงที่
==================================
Credit : Constance, Dubealex
==================================




avatar
boyhit
Admin
Admin

ชื่อเล่น : เเอล
ความฝัน : ศิลปิน
จำนวนข้อความ : 1130
เครดิต : 3356
วันที่สมัคร : 09/10/2011
คะเเนนน้ำใจ : 11
เพศ : Male อายุ : 19
เหรียญรางวัล :

ดูข้อมูลส่วนตัว http://raccoongame-rpg.thai-forum.net

ขึ้นไปข้างบน Go down

Re: RGSS & Ruby Lesson - Chapter 2

ตั้งหัวข้อ by boyhit on Sat Oct 29, 2011 1:40 am

2. Conditional Statements เงื่อนไข เงื่อนไข และ เงื่อนไข
หนึ่ง
ในสิ่งที่สำคัญของการเขียนโปรแกรม
อันเป็นตัวควบคุมการทำงานของสคริปต์เลยก็ว่าได้ ก็คือ เงื่อนไข หรือ
If-else statement นั่นเอง ก่อนอื่นเรามาดูก่อนดีกว่าว่า
เงื่อนไขที่ว่านั่นมันหมายถึงอะไร
เงื่อนไขในการเขียนโปรแกรมนั้นจะมีคำ
ตอบอยู่แค่สองอย่างคือ ใช่ กับ ไม่ หรือก็คือ true หรือ false ตามลำดับ
เราเรียกข้อมูลแบบนี้ว่า Boolean expression ใครไม่เข้าใจก็ลองคิดถึงสวิทช์ไฟ เปิด หรือ ปิด ทางแยกซ้ายหรือขวา สีขาวหรือดำดู ใน Boolean expression จะไม่มีการเปิดสวิทช์ครึ่งสวิทช์ หรือบุกฝ่าไปทางกลางระหว่างแยกซ้ายขวา หรือสีเทา ต้องอย่างใดอย่างหนึ่งเท่านั้น
ตัวอย่าง :
“สุนัขออกลูกเป็นกระบือ” - false
“1+1 เป็นสอง” – true
“หนึ่งล้าน มากกว่า หนึ่งร้อย” – true

ในการเขียนโปรแกรมนั้น จะมีคำสั่งที่ใช้เปรียบเทียบข้อมูลสองตัวและส่งคืนคำตอบเป็น true หรือ false อยู่ โดยสัญลักษณ์ต่างๆมีดังนี้

คำสั่ง ผลลัพธ์
= = เทียบว่าเท่ากันหรือไม่
!= เทียบว่าไม่เท่ากันหรือไม่
> เทียบว่ามากกว่าหรือไม่
< เทียบว่าน้อยกว่าหรือไม่
>= เทียบว่ามากกว่าหรือเท่ากันหรือไม่
<= เทียบว่าน้อยกว่าหรือเท่ากันหรือไม่

ลองทำดู : ลองดูโค้ดเหล่านี้แล้วทายผลลัพธ์ว่า true หรือ false
CODE

p 2 < 3
p 5 == 6
p (1+7) <= 8
*เฉลย : true, false,true

นอกจากคำสั่งพื้นฐานด้านบนแล้วเราสามารถเพิ่มเงื่อนไขได้อีกเช่นกันดังนี้
คำสั่ง ผลลัพธ์
&& “และ” เงื่อนไขทั้งหมดต้องเป็นจริง ถึงจะได้ผลลัพธ์เป็นจริง
| | “หรือ” เงื่อนไขอันใดอันหนึ่งเป็นจริง ผลลัพธ์ก็จะเป็นจริง

CODE

ตัวอย่าง: p 5 < 1 && 5 < 6 จะได้ false เพราะเงื่อนไขเป็นจริงแค่อันเดียว
p (2+1) < 4 && 5 < 6 จะได้ true เพราะเงื่อนไขเป็นจริงทั้งสองอัน
p 5 < 1 || 5 < 6 จะได้ true เพราะเงื่อนไขเป็นจริงแค่อันเดียว
p 5 < 1 || 5 < 2 จะได้ false เพราะเงื่อนไขไม่เป็นจริงสักอัน

ลองทำดู: ลองดูโค้ดเหล่านี้แล้วทายผลลัพธ์ว่า true หรือ false

CODE
p 2 < 3 && (5+1) != 7
p 5 == 6 | | 5= =7 | | 5 = = 5
p (4+1) <= 5 && (5+2) <= 7 && (6+3) < 9

* เฉลย : true,true,false

นอกจากนี้เรายังสามารถบรรจุข้อมูลเหล่านี้ลงในตัวแปรได้เช่นกัน
ตัวอย่าง : x = 5 == 6 จะเป็นการบรรจุค่า false ลงในตัวแปร x

เมื่อเราทราบการทำงานของเงื่อนไขแล้ว ลองมาดูคำสั่งที่ใช้ในการเช็คเงื่อนไขเพื่อควบคุมการทำงานของสคริปต์หรือโปรแกรมกันดีกว่า

If statement
คำสั่งนี้แปลตรงตัวก็คือ “ถ้า...แล้วจะ....” ซึ่งความหมายก็ตรงตัวคือ
หากเงื่อนไขนี้สมบูรณ์ ก็จะเกิดอะไรขึ้นตามมา โดยรูปแบบของโค้ดมีดังนี้

CODE

if เงื่อนไข
สิ่งที่เกิดขึ้นเมื่อเงื่อนไขเป็นจริง
else
สิ่งที่เกิดขึ้นเมื่อเงื่อนไขเป็นเท็จ
end

ตัวอย่าง: game_finish = false
if (game_finish = = true)
p “เกมเสร็จแล้ว เย้”
else
p “ดอง ดอง ดอง”
end
จากตัวอย่างจะพบว่า หน้าจอจะพิมพ์แต่คำว่า “ดอง ดอง ดอง” แน่นอนเพราะเรากำหนดไว้ตอนต้นว่าตัวแปร game_finish = false คือเป็นเท็จ
อย่างไรก็ตาม เราสามารถเพิ่มเงื่อนไขเข้าไปอีกได้ แทนที่จะมีเพียงแค่สองทางแยก โดยการใช้คำสั่ง elsif เข้ามาช่วย

CODE

ตัวอย่าง :
age = 15
if (age < 13)
p ‘เด็กเอ๋ยเด็กดี'
elsif (age < 18)
p 'วัยรุ่นสุดจี๊ด'
elsif (age < 150)
p 'เริ่มแก่แล้ว'
else
p 'อายุยืนจริงนะ ไปตายได้แล้วไป'
end
จาก
ตัวอย่างจะพบว่า โปรแกรมจะทำการเช็คเงื่อนไขแรกสุดก่อนว่า age นั้นน้อยกว่า
13 หรือไม่ ถ้าน้อยกว่า ก็ไปขั้นต่อไปคือเช็คว่ามันน้อยกว่า 18 หรือไม่
ถ้าน้อยกว่า 18 ก็จึงพิมพ์คำว่า “วัยรุ่นสุดจี๊ด” ขึ้นมาบนหน้าจอนั่นเอง

ต่อไปจะเป็นเทคนิคขั้นสูงขึ้นมาหน่อยเรียกว่า nest หรือการเช็คเงื่อนไขซ้อนเงื่อนไขนั่นเอง

CODE

ตัวอย่าง :
if 1 == 1
if 2 == 2
p 'Hello world!'
end
end
[CODE]
ใน
ตัวอย่างนี้จะพบว่า โปรแกรมจะทำการเช็คเงื่อนไขก่อนว่า 1 = 1 จริงรึเปล่า
ถ้าผ่าน จึงเข้าสู่ด่านตรวจต่อไป และถ้าผ่านทั้งสองด่าน
โปรแกรมก็จะพิมพ์คำว่า “Hello World” ออกมา

คำสั่งอีกอันหนึ่งคือ
unless ซึ่งเปรียบเสมือนคู่ตรงข้ามของ if เพราะ if
จะเช็คเงื่อนไขว่าเป็นจริงหรือไม่ แต่ unless จะเช็คเงื่อนไขว่าเป็นเท็จ
หรือไม่ ช่น “ฉันจะไม่ทำความสะอาดห้องหรอก ถ้าห้องไม่สกปรกจริงๆ”
ถ้าเป็น if ก็ต้องเช็คเงื่อนไขว่า ห้องสกปรกจริงๆหรือไม่ แต่ถ้าเป็น
unless จะต้องเช็คว่า ห้องสะอาดรึเปล่า นั่นเอง
[CODE]
ตัวอย่าง :
cleaness = false
unless cleaness
print 'ต้องทำความสะอาดซะแล้ว'
end
จากตัวอย่างจะพบว่า unless จะเช็คว่า cleaness เป็น false หรือไม่ ถ้าเป็น จึงพิมพ์คำว่า “ต้องทำความสะอาดซะแล้ว” บนหน้าจอ

Case statement
คำสั่งนี้เป็นคำสั่งที่ไว้ให้เราใช้เวลาเงื่อนไขนั้นมีหลายทางแยก
และเราขี้เกียจต้องมาเขียน elsif หนึ่งพันห้าร้อยยี่สิบตัว เราก็ใช้ case
statement ช่วยได้ ทั้งยังทำให้โค้ดเราดูสบายตา และเป็นระเบียบอีกด้วย
โดยรูปแบบของการเขียนโค้ดมีดังนี้

CODE

case ชื่อตัวแปร
when ค่าที่ 1
ทำอะไรก็ได้
when ค่าที่ 2
ทำอะไรก็ได้
when ค่าที่ 3
ทำอะไรก็ได้
when ค่าที่ 5
ทำอะไรก็ได้
else
ทำอะไรก็ได้
end
case statement จะทำการเช็คว่า ตัวแปรที่เราใส่เข้าไปนั้น มีค่าตรงกับเงื่อนไขไหน และจะทำการสั่งให้โค้ดในเงื่อนไขนั้นทำงาน


CODE

ตัวอย่าง :
number = 1
case number
when 0
p 'เลข 0'
when 1
p 'เลข 1'
when 2
p 'เลข 2'
Else
p 'ฉันโง่ นับเลขมากกว่านี้ไม่ไหวแล้ว'
end
จาก
ตัวอย่างจะพบว่า โปรแกรมจะพิมพ์คำว่า “เลข 1” บนหน้าจอ
เพราะค่าของตัวแปรไปตรงกับเงื่อนไขที่เมื่อเท่ากับ 1 หากเราลองเปลี่ยน
number = 1 เป็น number = 0 หรือ number = 2
โปรแกรมก็จะทำงานตามเงื่อนไขนั้นๆ และหากไม่ตรงกับเงื่อนไขใดๆเลย
โปรแกรมจะไปทำงานในส่วนของ else ซึ่กง็คือ พิมพ์ว่า “ฉันโง่
นับเลขมากกว่านี้ไม่ไหวแล้ว” นั่นเอง

Loop
ลูป แปลตรงตัวก็คือ
วังวน นั่นก็หมายถึงการทำอะไรซ้ำๆกันวนเวียนซ้ำซากไปเรื่อย
ซึ่งเป็นเรื่องที่คอมพิวเตอร์ถนัดนักแล
การทำงานวนลูปนี้เป็นสิ่งที่สำคัญมากในการเขียนโค้ด
เพราะแม้เราจะก๊อปปี้และวางโค้ดซ้ำๆกันพันบรรทัด ยังไงโค้ดก็ต้องจบ
แต่การวนลูปจะทำให้โค้ดไม่มีวันจบได้
คำสั่งในการใช้ลูปก็มีมากมายต่างกันไปดังนี้
1. ลูป while
คำสั่งคือ

CODE

while (เงื่อนไข)
สิ่งที่ต้องทำ
end
โปรแกรมจะสั่งให้โค้ดตรงส่วนสิ่งที่ต้องทำ ทำงานไปเรื่อยๆตราบใดที่เงื่อนไขเป็นจริง
2. ลูป until

CODE

until (เงื่อนไข)
สิ่งที่ต้องทำ
end
โปรแกรม
จะสั่งให้โค้ดตรงส่วนสิ่งที่ต้องทำ
ทำงานไปเรื่อยๆตราบใดที่เงื่อนไขเป็นเท็จ
ลูปนี้เป็นเหมือนกับคำสั่งที่ตรงกันข้ามกับ while
3. ลูป for
ลูปประเภทนี้มักใช้กับการที่เรารู้แน่นอนแล้วว่าจะให้โปรแกรมวนทำงานเป็นจำนวนกี่ครั้ง โดยมีคำสั่งดังนี้

CODE

for ตัวแปร in ช่วงตัวเลข
สิ่งที่ต้องทำ
end
โดยโปรแกรมจะทำการไล่ค่าในตัวแปร ตั้งแต่ต้นไปจนถึงตัวเลขที่เรากำหนด
ตัวอย่าง :

CODE

for x in (0..10)
print x
end
จาก
ตัวอย่างนี้ โปรแกรมจะพิมพ์ค่า 0 ,1 ,2 ,3 ไปเรื่อยๆจนถึง 10
เพราะเราสั่งให้ตัวแปร x ทำงานโดยเริ่มจากค่า 0 ไปจนถึง ค่า 10 นั่นเอง
4. ลูป loop
โค้ดคือ

CODE

loop do
โค้ดๆๆๆๆ
end
ลูป
นี้เป็นลูปที่ง่ายที่สุด เพราะมันไม่เช็คเงื่อนไขอะไรเลย
ก้มหน้าก้มตาให้โค้ดทำงานอย่างเดียวจนกว่าคอมจะเจ๊ง หรือโปรแกรมจะพัง
แน่นอน ใครจะอยากให้เรื่องแบบนั้นเกิดขึ้น
เราจึงต้องมีคำสั่งควบคุมการทำงานของลูปเหล่านี้ ซึ่งก็คือ....

การควบคุมการทำงานของลูป
ลูปนั้นมีคำสั่งที่ใช้การควบคุมการทำงานได้เช่นกัน เราอาจอยากให้มันวนใหม่
หรือเลิกวนลูป หรือทำใหม่แค่บางส่วนก็ได้ คำสั่งเหล่านั้นมีดังนี้
1. break
คำสั่งนี้จะเป็นการหยุดการทำงานของ loop นั้นทันที ถือว่าจบการทำงานทันทีและไปยังคำสั่งต่อไปหลังลูปเลย
2. next
ไว้ใช้ข้ามคำสั่งทุกคำสั่งใน ลูปแล้วไปยังรอบต่อไปในทันที
3. retry
เริ่มการทำงานของลูปนั้นๆใหม่ตั้งแต่ต้น
4. redo
เริ่มการทำงานของลูปนั้นๆใหม่เฉพาะรอบนั้นๆ
ตัวอย่าง :

CODE

for x in (0..10)
print x
break if (x == 5)
end
จากตัวอย่างนี้ เมื่อ x = 5 ลูปนี้จะหยุดทำงานทันที

CODE

for x in (0..10)
next if (x == 5)
print x
end
จาก
ตัวอย่างนี้ เมื่อ x = 5 ลูปนี้จะข้ามเลข 5 ไปแล้วไปยังรอบต่อไปคือ 6 ทันที
ผลลัพธ์ก็คือมันจะไม่แสดงตัวเลข 5 ออกมาบนหน้าจอนั่นเอง

CODE

for x in (0..10)
redo if (x == 5)
print x
end
จาก
ตัวอย่างนี้ เมื่อ x = 5 ลูปนี้จะเริ่มต้นใหม่
ซึ่งก็ทำให้โปรแกรมวนลูปไม่รู้จบ เพราะยังไงค่าที่ได้ก็คือ 5 อยู่ดี
แต่เมื่อค่า x เป็น 5 มันก็ต้องวนใหม่ อย่างนี้เรื่อยไปจนโปรแกรมพัง...

CODE

for x in (0..10)
retry if (x == 5)
print x
end
จาก
ตัวอย่างนี้ โปรแกรมจะพิมพ์ตัวเลขบนหน้าจอคือ 0 1 2 3 4 0 1 2 3 4
วนไปเรื่อยไม่รู้จบ เพราะเมื่อ x = 5 โปรแกรมจะเริ่มต้นวนลูปใหม่ที่ x = 0
นั่นเอง


จบเรื่องของเงื่อนไข เงื่อนไข และ เงื่อนไข
==============================
Credit : Constance, Dubealex
==============================




avatar
boyhit
Admin
Admin

ชื่อเล่น : เเอล
ความฝัน : ศิลปิน
จำนวนข้อความ : 1130
เครดิต : 3356
วันที่สมัคร : 09/10/2011
คะเเนนน้ำใจ : 11
เพศ : Male อายุ : 19
เหรียญรางวัล :

ดูข้อมูลส่วนตัว http://raccoongame-rpg.thai-forum.net

ขึ้นไปข้างบน Go down

ขึ้นไปข้างบน


 
Permissions in this forum:
คุณไม่สามารถพิมพ์ตอบ