วันอาทิตย์ที่ 1 พฤษภาคม พ.ศ. 2554

คาบที่ 4 ชนิดของตัวแปร

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

สมมติ เราจะสร้างชนิดของตัวแปรให้เป็น หนังสือสักเล่ม(ก็คือเป็นที่รวมของตัวอักษรในหน้ากระดาษแต่ละหน้าจนเป็นเล่ม)
การสร้างชนิดของตัวแปรที่เป็นหนังสือนั้น ชนิดของตัวแปรแบบนี้ก็จะพัฒนาต่อมาจากชนิดของตัวแปรแบบ String หรือก็คือตัวหนังสือ แล้วเอามาเพิ่มรายละเอียดเป็น มีหน้า มีปก รวมเป็นเล่ม แล้วกำหนดใหม่เป็นชนิดของตัวแปรที่เรียกว่าหนังสือ

AS3boy: อ้าว แล้วเราจะสร้างชนิดของตัวแปรยังไงล่ะครับ

ง่ายมากครับ การสร้างชนิดของตัวแปร พูดให้ถูกก็คือ การสร้าง class นั่นเอง โดยคลาสนั้น คือแหล่งรวมใหญ่ที่มีการรวมทั้งตัวแปร และ ”รูปแบบคำสั่ง” อยู่ในนั้น

AS3boy: มีคำศัพท์ใหม่มาอีกแล้ว T T

อย่าเพิ่งร้อนใจไปครับ เจ้า”รูปแบบคำสั่ง” นั้น ก็ไม่ได้ยากอะไรเท่าไรหรอกครับ ถ้าเทียบกัน ตัวแปรคือ คำนาม ส่วนรูปแบบคำสั่งก็คือ กริยานั่นเองแหละ สมมติว่า ถ้าเราสร้างตัวแปรชื่อโลก พอเราไม่ได้กำหนดชนิดของตัวแปร โลกของเรา คืออะไรก็ไม่รู้ในโปรแกรมแฟลช แต่เมื่อเรากำหนดชนิดของตัวแปร หรือก็คือ class นั่นหมายถึง เรากำหนดการกระทำ(กริยา) หรือสิ่งที่มันต้องทำ คราวนี้โลกก็จะมีหน้าที่ในการทำงานของตัวมันเองแล้ว โดยใน class จะมีรูปแบบคำสั่งหรือตัวแปรอยู่ในนั้นด้วย

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

ชนิดของตัวแปรที่ใช้งานมากและบ่อยที่สุดก็คงหนีไม่พ้น 6 ตัวนี้

Integer ตัวย่อคือ int
Number
Boolean
String
Sprite
MovieClip

ตัวแรก int หรือก็คือเลขจำนวนเต็ม เลขจำนวนเต็มนี้สำคัญยังไง
สำคัญสิครับ ถ้าคุณต้องทำงานเกี่ยวกับตัวเลข มันต้องมีบ้างแหละที่ต้องใช้เลขที่ไม่มีจุดทศนิยม ไม่เข้าใจสินะ อืม งั้น ถ้าคุณต้องการสร้างเกมเฟซบุ๊ค คุณจำเป็นต้องสร้างแถบเลือดที่มีความละเอียดถึงทศนิยม 2 ตำแหน่งเพื่อการคำนวน ทว่า เวลาแสดงให้ผู้เล่นได้ดู คุณแสดงแค่เลขจำนวนเต็มก็พอ เพราะไม่งั้นหน้าจอแสดงผลจะรกเกินไป คุณก็ต้องแปลงตัวเลขจาก Number เป็น int ก่อน แล้วจึงค่อยแสดงผลเมื่อเป็นเช่นนั้น ระบบก็ยังทำงานด้วยเลขทศนิยม 2 ตำแหน่งอยู่ แต่ผู้เล่น ที่ไม่จำเป็นต้องรู้ละเอียด ก็เห็นเฉพาะเลขจำนวนเต็มเท่านั้นครับ การกำหนดชนิดตัวแปรเป็น int ก็ทำเหมือนที่สอนมา

คือ var pick:int = 180.36;

จากสคริป ผมสร้างตัวแปรชื่อปิ๊ก มีชนิดของตัวแปรเป็นจำนวนเต็ม มีค่า เป็น 180.36 เมื่อระบบทำงานโดยการสั่งให้ทำงาน ในที่นี้ การสั่งให้แฟลชเริ่มทำงานสคริปให้กด Ctrl+Enter พอระบบเริ่มทำงาน ระบบก็จะสร้างตัวแปรชื่อปิ๊กที่มีค่า 180 ขึ้นมา โดยตัดทศนิยมออกไป ไม่ว่าเราจะใส่ทศนิยมอะไรไปก็ตาม พูดง่าย แม้เจะกำหนดค่ามั่วซั่ว แต่ระบบจะดูชนิดของตัวแปร แล้วก็จะจัดการให้ตัวแปรอยู่ในรูปแบบที่วางไว้อย่างเหมาะสมที่สุดครับ


ชนิดตัวแปรที่ 2 Number ก็คือตัวเลขที่มีจุดทศนิยมก็ได้ ไม่มีก็ได้ เช่นนั้นจึงค่อนข้างใช้งานได้กว้างกว่า โดยเฉพาะ เมื่อคุณนำเอามาใช้คำนวนทางคณิตศาสตร์

ตัวอย่าง var pick:int = 180.36; var spock:Number = 120.64;
โจทย์ pick+spock = ?

เฉลย pick เป็นจำนวนเต็ม เมื่อประมวลผล pick จะมีค่าเท่ากับ 180 ทันที ไม่มีการปัดเลขใดๆทั้งนั้น ส่วน spock ก็จะมีค่าเท่ากับ 120.64 ไม่มีปัดเลขเช่นกัน ดังนั้นบวกกันจะเท่ากับ 180+120.64 = 300.64 เข้าใจนะ

สำหรับแฟลชนั้น เราสามารถให้มันแสดงค่าตัวแปรให้เราดูได้โดยใช้สคริป trace(); วิธีใช้คือ

ตัวอย่าง var pick:int = 180.36; var spock:Number = 120.64; trace(pick+spock);

ถ้าคุณนำประโยคข้างบนไปวางไว้ในช่องสำหรับเขียนสคริป แล้วกด Ctrl+Enter ให้มันทำงาน ช่อง out put จะแสดงผลมาว่า 300.64

เพราะ pick = 180 และ spock = 120.64, pick+spock = 180+120.64 = 300.64

แถมอีกนิด trace(); นั้น สามารถใช้งานได้หลากหลายกว่านั้น เช่น trace(pick); ค่าที่แสดงออกมา ก็จะเป็นค่าของตัวแปร pick ซึ่งก็คือ 180 ส่วน trace(“ซารางเฮโย”); ค่าที่ได้ก็จะแสดงออกมา(หลังกด Ctrl+Enter) ว่า ซารางเฮโย อ๋อ ก็เพราะถ้าใส่เครื่องหมายคำพูด “” มันก็จะแสดงประโยคนั้นออกมาเลย เช่น trace (“pick”); พอกดแสดงผล มันก็จะแสดงว่า pick ครับ


ชนิดของตัวแปรถัดมา Boolean อันนี้ง่ายหน่อย แต่มองยากว่าใช้งานอะไร
บูลีนนั้น ค่าที่แสดงออกมามีอยู่ 2 ชนิดคือ true กับ false ถ้าเราไม่กำหนด หรือกำหนดอะไรที่ไม่ใช่ true มันจะกลายเป็น false เสียทั้งหมด ค่านี้ใช้ทำอะไร

ค่านี้โดยมากมักใช้งานเพื่อบอกสถานะว่าอยู่ในสถานนั้นหรือไม่

ตัวอย่าง var jump:Boolean = false;

หมายถึง กำหนดให้ตัวแปรชื่อ jump เป็นได้แค่ถูกกับผิด (true or false) และตอนนี้มีค่าคือ false

กรณีสมมติ เมื่อคุณกดปุ่ม spacebar แล้วทางเราได้วางคำสั่งตรวจจับการกด spacebar ไว้(การวางคำสั่งตรวจจับการกดปุ่มจะมาสอนบทหลัง) เมื่อตรวจจับว่าคุณกดปุ่มจริง ค่า jump จะเปลี่ยนเป็น true
คราวนี้ ถ้าเราวางการตรวจจับสถานะของ jump ถ้าเปลี่ยนเป็น true เมื่อไหร่ ให้สั่งตัวละครให้กระโดด
จะเห็นได้ว่า Boolean นั้น จะเกี่ยวโยงกับการสั่งการทำงานของระบบเสียมากกว่าจะใช้งานปรกติ ดังนั้นในบทนี้ ขอแค่รู้ว่า มันมีค่าเป็นแค่ true กับ false ก็พอแล้ว


สรุป

1. ชนิดของตัวแปร int คือตัวเลขจำนวนเต็ม
2. ชนิดของตัวแปร number คือตัวเลขที่มีทศนิยมด้วยก็ได้
3. ชนิดของตัวแปร Boolean คือเป็นได้แค่ true กับ false

ยังเหลือชนิดของตัวแปรที่ใช้กันมากอยู่อีก 3 ตัว พักสมองซะก่อน เอาไว้คาบหน้าดีกว่าครับ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น