เอกสารประกอบการสอน วิชาการเขียนโปรแกรมคอมพิวเตอร (11-413-202) 81 วิธกี ารสอนและกจิ กรรม 1. สอนแบบบรรยายโดยใชส่อื ประกอบการสอน 2. ใหน ักศกึ ษามสี วนรว มในกจิ กรรมระหวางการเรียนการสอนโดยใชว ิธกี ารถาม-ตอบ เอกสารประกอบ เอกสารประกอบการสอน บทที่ 5 ตวั แปรและชนิดขอ มลู พน้ื ฐาน สอ่ื การสอน สอื่ ประกอบการสอน ไฟลนำเสนอ power point บทท่ี 5 ตวั แปรและชนิดขอมูล พน้ื ฐาน โสตทศั นวัสดุ เครือ่ งฉายโปรเจคเตอร งานทีม่ อบหมาย 1. ศกึ ษาการประกาศตัวแปร ชนดิ ขอ มูล และการแปลงขอ มลู 2. แบบฝก หดั วเิ คราะหและการเขียนผงั งานสำหรบั การเขยี นโปรแกรมคอมพวิ เตอร การวดั ผล 1. สังเกตพฤติกรรมการเรยี นในหอ งเรียน 2. สงั เกตพฤตกิ รรมการมสี ว นรว มในกจิ กรรมระหวางการเรียนการสอนในการถาม-ตอบ 3. ตรวจงานทมี่ อบหมาย 4. ทดสอบตามจุดประสงคก ารสอน บันทึกการสอนและขอ สังเกต …………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………… ………………………………………………………………………………… ______________________________________________________________________________ เรยี บเรยี งโดย: อาจารยภูรวิ ฒั น เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยกี ารจดั การ
82 เอกสารประกอบการสอน วิชาการเขียนโปรแกรมคอมพิวเตอร (11-413-202) ______________________________________________________________________________ เรยี บเรยี งโดย: อาจารยภ ูริวัฒน เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจัดการ
เอกสารประกอบการสอน วิชาการเขยี นโปรแกรมคอมพวิ เตอร (11-413-202) 83 สัปดาหท ่ี 5 ใบเตรยี มการสอน เวลา 4 ชัว่ โมง บทท่ี 6 ตวั ดำเนินการ 6.1 เคร่ืองหมายในการเชอื่ มตอ String 6.2 ตวั ดำเนนิ การกำหนดคา 6.3 ตวั ดำเนินการทางคณติ ศาสตร 6.4 ตวั ดำเนินการกำหนดคาแบบผสม 6.5 ตัวดำเนินการเพิ่มและลดคา 6.6 ตัวดำเนินการเปรียบเทยี บ 6.7 ตัวดำเนินการตรรกศาสตร 6.8 ตัวดำเนนิ การแบบบติ 6.9 ตัวดำเนนิ การเปรียบเทียบเงอื นไขแบบสน้ั จดุ ประสงคการสอน 6.1 เขา ใจรปู แบบการใชงานตวั ดำเนินการรูปแบบตา ง ๆ รวมกับคำส่ังภาษา Java 6.2 สามารถประยุกตใชต วั ดำเนินการตาง ๆ ในการเขยี นโปรแกรมไดอยา งเหมาะสม _________________________________________________________________________ เรยี บเรยี งโดย: อาจารยภ ูรวิ ัฒน เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจดั การ
84 เอกสารประกอบการสอน วิชาการเขยี นโปรแกรมคอมพิวเตอร (11-413-202) บทท่ี 6 ตัวดำเนินการ ภาษา Java เปน รูปแบบการเขยี นคำสงั่ ระหวา งตวั ดำเนนิ การ (Operator) และตวั ถูกกระทำ (Operand) เชน การกำหนดคาใหกับตัวแปร การคำนวณคลายกับตรรกะทางคณิตศาสตร และยังมี เครอ่ื งหมายทใี่ ชในการเปรยี บเทียบบางสัญลกั ษณยังมีความแตกตางจากตรรกะทางคณิตศาสตรท ั่วไป ดังนั้นนิพจนจะตองใชตัวดำเนินการตาง ๆ เพื่อคำนวณหาผลลัพธ และสรางเงื่อนไขตาง ๆ ในการ เขียนโปรแกรมโดยมตี วั ดำเนินการดังตอไปนี้ 6.1 เครื่องหมายในการเชื่อมตอ String เครื่องหมายที่ใชในการเชื่อมตอ String หรือเรียกวา String concatenation ใชสำหรับตอ String 2 String ใหเ ปน String เดียวกัน จากบททผี่ านมา String เปน คลาสในภาษา Java เพื่อใหเรา จัดการกับขอความไดงายขึ้น โดยเราสามารถใชเครื่องหมาย + ในการตอ String เขาดวยกันไดตาม ตัวอยาง ในรูปที่ 6.1 รปู ท่ี 6.1 ตวั อยา งโปรแกรมการใชเ ครอ่ื งหมาย (+) จากตัวอยา งเปนการนำ String มาตอ กัน นอกจากนี้ String ยงั สามารถตอกับคา อน่ื ได เชน ตวั เลข และ Boolean เมอ่ื รนั โปรแกรมจะไดผลลพั ธด ังรปู ท่ี 6.2 _________________________________________________________________________ เรยี บเรียงโดย: อาจารยภ ูรวิ ฒั น เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยกี ารจัดการ
เอกสารประกอบการสอน วิชาการเขียนโปรแกรมคอมพวิ เตอร (11-413-202) 85 รูปที่ 6.2 ผลลพั ธก ารรันตวั อยางโปรแกรมการใชเคร่ืองหมาย (+) 6.2 ตัวดำเนินการกำหนดคา ตัวดำเนินการกำหนดคา หรือ assignment operator เปนตัวดำเนินการที่ใชสำหรับการ กำหนดคาใหก ับตวั แปรโดยใชเคร่อื งหมาย ( = ) เชน int num = 10; float f = 10.10f; String name = “Puriwat”; Scanner sc = new Scanner(System.in); myClass obj = new myClass(); การกำหนดคา ใหกับตัวแปรประเภทตาง ๆ มี 2 แบบคือ ตวั แปรทเี่ ปน primitive types เชน int และ float ในตวั อยา ง สว น String และ Scanner เปน คลาสไลบราร่ีที่มอี ยแู ลวในภาษา Java จึง สามารถใชงานไดทันที สำหรับ myClass เปนคลาสที่ผูเขียนโปรแกรมสรางขึ้นมาใชงานเองเปน ลักษณะของการเขยี นโปรแกรมเชงิ วัตถุ 6.3 ตวั ดำเนนิ การทางคณิตศาสตร ตัวดำเนินการทางคณิตศาสตร หรือ arithmetic operators เปนตัวดำเนินการที่ใชสำหรับ การคำนวณเพ่อื ใหไ ดผลลพั ธใหมจะทำงานรว มกบั ตวั ดำเนนิ การกำหนดคา (=) เสมอ ตามตารางที่ 6.1 _________________________________________________________________________ เรียบเรยี งโดย: อาจารยภ รู ิวฒั น เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยกี ารจดั การ
86 เอกสารประกอบการสอน วชิ าการเขยี นโปรแกรมคอมพิวเตอร (11-413-202) ตารางที่ 6.1 ตวั ดำเนนิ การทางคณิตศาสตร ช่อื เรยี ก ตัวอยาง Addition x=a+b ตัวดำเนินการ Subtraction x=a-b + Multiplication x=a*b - Division x=a/b * Modulo x=a%b / % ตัวดำเนินการทีใ่ ชสัญลักษณทัว่ ไปก็จะมีความหมายเชนเดียวกับสัญลักษณทางคณิตศาสตร แตจะมีตวั ดำเนนิ การทช่ี ื่อ modulo ท่อี าจจะไมคนุ เคย คอื เปน ตวั ดำเนินการที่ใชสำหรับการหารเอา เศษท่มี ีความจำเปน ในการเขียนโปรแกรม ดังรปู ที่ 6.3 รปู ที่ 6.3 ตวั อยางโปรแกรมการใชต ัวดำเนินการทางคณติ ศาสตร ในตัวอยา งโปรแกรมเปนการใชตวั ดำเนินการทางคณติ ศาสตรเ มอื่ รันโปรแกรมจะไดผ ลลัพธด งั รูปที่ 6.4 _________________________________________________________________________ เรียบเรยี งโดย: อาจารยภ ูริวฒั น เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยกี ารจัดการ
เอกสารประกอบการสอน วิชาการเขียนโปรแกรมคอมพวิ เตอร (11-413-202) 87 รูปที่ 6.4 ผลลพั ธก ารรันโปรแกรมการใชตวั ดำเนินการทางคณติ ศาสตร 6.4 ตัวดำเนนิ การกำหนดคา แบบผสม ตวั ดำเนินการกำหนดคา แบบผสม หรอื compound assignment มกั ถูกใชเพอื่ เปลยี่ นแปลง คาตัวแปรเดิมที่มีอยูแ ลว เปนรูปแบบยอของ arithmetic operator และ bitwise operators ที่ทำ ใหเ ขยี นคำสั่งไดร วดเรว็ และลดขอ ผิดพลาดในการเขยี นโปรแกรม ตามตารางที่ 6.2 ตารางที่ 6.2 ตัวดำเนินการกำหนดคาแบบผสม ตวั ดำเนินการ ตัวอยาง การดำเนนิ การ a=a+2 += a += 2; a=a-2 a=a*2 -= a -= 2; a= a / 2 a=a%2 *= a *= 2; a = a >> 2 a = a << 2 /= a /= 2; a=a&2 a= a ^ 2 %= a %= 2; a=a|2 >>= a >>= 2; <<= a <<= 2 &= a & = 2; ^= a ^= 2; |= a |= 2; 6.5 ตวั ดำเนนิ การเพมิ่ และลดคา ตัวดำเนินการเพิ่มและลดคา หรือ increment and decrement operators เปนตัว ดำเนินการที่ใชบอยในการเขยี นโปรแกรม มี 2 รูปแบบ คือ prefix จะทำการเพิ่มหรือลดคาตัวแปร ทนั ทกี อนทจ่ี ะประมวลผลคำสั่งน้นั และ postfix จะเพ่ิมหรอื ลดคา ตวั แปรหลังจากทปี่ ระมวลผลคำสงั่ น้นั เสรจ็ เรยี บรอ ยแลว ตามตารางท่ี 6.3 _________________________________________________________________________ เรียบเรยี งโดย: อาจารยภูริวัฒน เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยกี ารจัดการ
88 เอกสารประกอบการสอน วชิ าการเขียนโปรแกรมคอมพิวเตอร (11-413-202) ตารางที่ 6.3 ตวั ดำเนนิ การเพ่ิมและลดคา ตวั ดำเนินการ ตัวอยาง การดำเนินการ a = a + 1; ++ (prefix) ++a; a = a + 1; a = a - 1; ++ (postfix) a++; a = a - 1; -- (prefix) --a; -- (postfix) a--; รูปที่ 6.5 ตวั อยา งโปรแกรมการใชต ัวดำเนินการเพ่ิมและลดคา ตวั แปร จากตัวอยา งแสดงใหเหน็ ความแตกตางระหวา งรปู แบบ prefix และ postfix ซง่ึ ไดกำหนดคา ใหกับตัวแปร x และ y มีคาเทากัน ผลที่ไดจากการรันโปรแกรม ++x ถูกเพิ่มคากอนที่จะแสดงผล สวน y++ จะเพิ่มคาหลังจากแสดงผลคาตัวแปรแลว จงึ ไดผ ลลพั ธดงั รูปที่ 6.6 รปู ที่ 6.6 ผลลพั ธก ารรันโปรแกรมการใชตัวดำเนินการเพิ่มและลดคาตัวแปร 6.6 ตัวดำเนนิ การเปรยี บเทียบ ตัวดำเนินการเปรียบเทียบ หรือ relational and comparison operators ใชสำหรับการ เปรียบเทียบขอมูลโดยการสราง expression คาที่ไดจากการใชตัวดำเนินการนี้จะเปนคา Boolean value (true หรือ false) และสวนใหญจะใชกับคำสั่งในการเปรียบเทียบเงื่อนไขในคำสั่ง if while do-while และ for ตามตารางท่ี 6.4 _________________________________________________________________________ เรยี บเรียงโดย: อาจารยภรู ิวัฒน เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจัดการ
เอกสารประกอบการสอน วิชาการเขยี นโปรแกรมคอมพวิ เตอร (11-413-202) 89 ตารางที่ 6.4 ตัวดำเนนิ การเปรยี บเทยี บ ตวั ดำเนินการ ตวั อยาง ผลลัพธ == a == b เปน true ถา คา a เทากับ b นอกจากนั้นเปน false != a != b เปน true ถา คา a ไมเ ทา กบั b นอกจากน้ันเปน false < a < b เปน true ถา คา a นอยกวา b นอกจากนั้นเปน false > a > b เปน true ถา คา a มากกวา b นอกจากนั้นเปน false <= a <= b เปน true ถาคา a นอยกวา หรือเทากับ b นอกจากนั้นเปน false >= a >= b เปน true ถาคา a มากกวาหรือเทากับ b นอกจากนน้ั เปน false รูปที่ 6.7 ตวั อยางโปรแกรมการใชต ัวดำเนินการเปรยี บเทยี บ จากรูปที่ 6.7 เปนตัวอยางการกำหนดคาใหกับตัวแปร a = 5 และ b = 10 แลวนำมา เปรยี บเทยี บดว ยตวั ดำเนนิ การเปรยี บเทยี บตา ง ๆ จะไดผลลัพธดังรูปท่ี 6.8 รปู ท่ี 6.8 ผลลพั ธการรนั ตวั อยา งโปรแกรมการใชตัวดำเนินการเปรียบเทียบ _________________________________________________________________________ เรียบเรียงโดย: อาจารยภ รู วิ ฒั น เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจดั การ
90 เอกสารประกอบการสอน วชิ าการเขียนโปรแกรมคอมพวิ เตอร (11-413-202) 6.7 ตวั ดำเนินการทางตรรกศาสตร ตัวดำเนินการทางตรรกศาสตร หรือ logical operators เปนตัวดำเนินการที่ใชสำหรับ expression ในภาษา Java มีตัวดำเนินการทางตรรกศาสตรตามตารางที่ 6.5 และตัวอยา งตารางคา ความจรงิ ในตารางที่ 6.6 ตารางท่ี 6.5 ตวั ดำเนนิ การทางตรรกศาสตร ตวั ดำเนินการ ช่ือเรยี ก ตวั อยาง ! Not ! true true && true && And true || false || Or ตารางที่ 6.6 ตัวอยา งตารางคาความจริง A && B A || B False False A B !A False True False False True False True True False False True True False True True True True False ตัวดำเนินการทางตรรกศาสตรที่ใชในการเขียนโปรแกรมจะใชคำสั่งตรวจสอบเงื่อนไข เชน คำสั่ง if รูปท่ี 6.9 ตวั อยา งโปรแกรมการใชต ัวดำเนินการทางตรรกศาสตร _________________________________________________________________________ เรียบเรยี งโดย: อาจารยภ รู วิ ฒั น เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยกี ารจัดการ
เอกสารประกอบการสอน วิชาการเขียนโปรแกรมคอมพวิ เตอร (11-413-202) 91 จากตัวอยางเปนการทดสอบเงื่อนไขคำสั่ง if ซึ่งคำสั่ง if อันแรกจะเปนจริงไดก็ตอเมื่อ expression ทั้ง 2 เปน True หากอนั ใดอันหนึง่ เปน false คำส่งั ในบล็อก if จะไมทำงานเน่อื งจากใช ตัวดำเนินการ And สำหรับคำสงั่ if อันทสี่ องคำสั่งในบล็อคจะทำงานเมอ่ื expression อันใดอันหน่ึง เปน จริงเน่อื งจากใชต ัวดำเนินการ Or 6.8 ตวั ดำเนินการแบบบิต ตัวดำเนินการแบบบิต หรือ bitwise operators จะทำงานกับรูปแบบหนึ่งบิตหรอื มากกวา หรือในตัวเลขฐานสอง โดยการนำคูของบิตแตละตัวมาคำนวณโดยใชหลักการของตัวดำเนินการทาง คณติ ศาสตร ตามตารางท่ี 6.7 ตารางท่ี 6.7 ตัวดำเนนิ การระดับบิต คำอธบิ าย Bitwise AND ตัวดำเนินการ Bitwise inclusive OR & Bitwise exclusive OR | bit inversion ^ Shift bits left ~ Shift bits right << >> รูปที่ 6.10 ตวั อยา งโปรแกรมการใชต ัวดำเนินการแบบบติ _________________________________________________________________________ เรยี บเรียงโดย: อาจารยภรู ิวฒั น เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยกี ารจัดการ
92 เอกสารประกอบการสอน วิชาการเขยี นโปรแกรมคอมพิวเตอร (11-413-202) จากรูปท่ี 6.10 แสดงตวั อยา งการใชตวั ดำเนนิ การแบบบติ 4 ชนดิ โดยทำกับตวั แปร Integer ซง่ึ มขี นาด 8 บติ ดังนั้นการทำงานของโปรแกรมแสดงไดต ามตารางท่ี 6.8 ตารางที่ 6.8 การดำเนนิ การจากตัวอยางโปรแกรม เลขฐาน 10 เลขฐาน 2 ผลลัพธเ ลขฐาน 2 ผลลพั ธเ ลขฐาน 10 5&3 00000101 & 00000011 00000001 1 00000001 7 5 | 3 00000101 | 00000011 11111010 -6 00001010 10 ~5 ~00000101 5 << 1 00000101 << 1 และเมอ่ื รนั โปรแกรมตัวอยาง จะไดผ ลลพั ธตามรปู ที่ 6.11 โดยผเู ขียนโปรแกรมจะตองมคี วาม เขา ใจเก่ียวกบั เลขฐานเพ่อื ทจี่ ะใชง านตัวดำเนนิ การแบบบิตไดอ ยางถกู ตอ ง รูปที่ 6.11 ผลลพั ธการรนั ตัวอยางโปรแกรมการใชตัวดำเนินการแบบบติ 6.9 ตวั ดำเนินการเปรียบเทียบเง่ือนไขแบบสนั้ ตัวดำเนินการเปรียบเทียบเงื่อนไขแบบสั้น หรือ conditional ternary operator จะใช สำหรับประเมิน expression ถา expression เปน true จะใหผลลัพธคาหนึ่ง และอีกคาหนึ่งถา expression เปน false มรี ปู แบบการใชงานดงั น้ี expression? valueForTrue: valueForFalse; _________________________________________________________________________ เรยี บเรยี งโดย: อาจารยภ ูรวิ ฒั น เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจัดการ
เอกสารประกอบการสอน วชิ าการเขียนโปรแกรมคอมพวิ เตอร (11-413-202) 93 หลักการทำงานของตัวดำเนนิ การนี้จะเหมอื นกับคำส่ัง if ถา เงื่อนไขและการทำงานไมซ ับซอ น และมคี ำสงั่ เดยี วท่จี ะทำงาน ตามตัวอยา งในรูปท่ี 6.12 และผลลัพธก ารรันโปรแกรมในรปู ที่ 6.13 รปู ท่ี 6.12 ตวั อยา งโปรแกรมการใชต ัวดำเนินการเปรยี บเทียบแบบส้นั รูปท่ี 6.13 ผลลพั ธการรันตวั อยางโปรแกรมการใชตัวดำเนนิ การเปรียบเทยี บแบบสั้น _________________________________________________________________________ เรียบเรยี งโดย: อาจารยภรู วิ ัฒน เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยกี ารจดั การ
94 เอกสารประกอบการสอน วิชาการเขียนโปรแกรมคอมพวิ เตอร (11-413-202) แบบฝก หดั บทท่ี 6 1. จงเขยี นโปรแกรมทีท่ ำการเปลยี่ นองศา Celsius degree เปน องศา Fahrenheit 2. จงเขียนโปรแกรมสำหรับอานคาความยาวหนวยเปนนิ้ว (inches) จากผูใช และแปลงหนวยเปน เมตร (meter) แสดงผลทางจอภาพ 3. จงเขยี นโปรแกรมเพอ่ื คำนวณดัชนมี วลกาย (Body mass index: BMI) จากสมการ weight/(hight * hight) _________________________________________________________________________ เรียบเรียงโดย: อาจารยภูริวัฒน เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจดั การ
เอกสารประกอบการสอน วิชาการเขยี นโปรแกรมคอมพวิ เตอร (11-413-202) 95 วธิ กี ารสอนและกิจกรรม 1. สอนแบบบรรยายโดยใชส่ือประกอบการสอน 2. ใหนกั ศกึ ษามีสว นรว มในกจิ กรรมระหวางการเรียนการสอนโดยใชว ธิ กี ารถาม-ตอบ 3. ปฏิบตั ิการเขียนโปรแกรมการใชงานคำสงั่ เกี่ยวกบั ตวั ดำเนินการ เอกสารประกอบ เอกสารประกอบการสอน บทที่ 6 ตวั ดำเนินการ สอ่ื การสอน สือ่ ประกอบการสอน ไฟลนำเสนอ power point บทท่ี 6 ตวั ดำเนินการ โสตทศั นวสั ดุ เคร่อื งฉายโปรเจคเตอร งานท่ีมอบหมาย 1. ศึกษาการใชต ัวดำเนินการรปู แบบตาง ๆ และสามารถประยกุ ตใ ชในการเขยี นโปรแกรมได 2. แบบฝก หดั การใชง านตัวดำเนนิ การ การวดั ผล 1. สงั เกตพฤติกรรมการเรยี นในหอ งเรยี น 2. สงั เกตพฤตกิ รรมการมสี วนรว มในกจิ กรรมระหวา งการเรียนการสอนในการถาม-ตอบ 3. ตรวจงานทมี่ อบหมาย 4. ทดสอบตามจดุ ประสงคก ารสอน บนั ทึกการสอนและขอ สงั เกต …………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………… _________________________________________________________________________ เรียบเรยี งโดย: อาจารยภ รู ิวฒั น เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจดั การ
96 เอกสารประกอบการสอน วชิ าการเขยี นโปรแกรมคอมพวิ เตอร (11-413-202) _________________________________________________________________________ เรียบเรยี งโดย: อาจารยภรู วิ ัฒน เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจัดการ
เอกสารประกอบการสอน วชิ าการเขยี นโปรแกรมคอมพวิ เตอร (11-413-202) 97 สัปดาหท ่ี 6-7 ใบเตรยี มการสอน เวลา 8 ชั่วโมง บทท่ี 7 คำสงั่ เลือกเงอื่ นไขและวนซ้ำ 7.1 คำสัง่ เลือกเง่ือนไข 7.1.1 คำสั่ง if 7.1.2 คำสง่ั if-else 7.1.3 คำสัง่ if-else-if 7.1.4 คำสง่ั nested if-else 7.1.5 คำสั่ง switch-case 7.2 คำสัง่ วนซ้ำ 7.2.1 คำส่งั while 7.2.2 คำสง่ั Do-while 7.2.3 คำสั่ง for 7.2.4 คำส่งั nested loop 7.2.5 คำสง่ั continue 7.2.6 คำสง่ั break จดุ ประสงคก ารสอน 7.1 เขา ใจหลักการและใชงานคำสง่ั เลือกเงอ่ื นไขแบบตาง ๆ ได 7.2 เขา ใจหลกั การทำงานของคำสั่งวนซำ้ และสามารถนำไปประยุกตใชอยา งถูกตอง 7.3 สามารถเขียนโปรแกรมคำสง่ั เลือกเง่ือนไขและคำส่งั วนซำ้ ได _________________________________________________________________________ เรยี บเรยี งโดย: อาจารยภ ูรวิ ัฒน เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยกี ารจัดการ
98 เอกสารประกอบการสอน วชิ าการเขียนโปรแกรมคอมพิวเตอร (11-413-202) บทที่ 7 คำส่ังเลือกเง่ือนไขและวนซ้ำ คำสั่งเลือกเงื่อนไขและวนซ้ำเปนสิ่งที่จำเปนเสมอสำหรับภาษาเขียนโปรแกรมทุก ๆ ภาษา เพียงแตในแตละภาษาจะมีการเขียนคำสั่งการใชงานที่แตกตางกันบางเล็กนอย ดังนั้นหากมีความ เขาใจในรูปแบบคำสัง่ หรือการใชงาน ก็จะทำใหก ารเขยี นโปรแกรมนัน้ ดูงายขึน้ และลดขอผิดพลาด ของการเขยี นโปรแกรมได ในบทนีจ้ ะแบง ออกเปน 2 สวนหลัก ๆ คือ คำส่งั เลอื กเงือ่ นไข และคำสัง่ วน ซำ้ ดงั นี้ 7.1 คำส่ังเลือกเง่อื นไข คำสั่งเลือกเงื่อนไขเปนวิธีการควบคุมการทำงานของโปรแกรมคำสั่งเงื่อนไขในภาษา Java เพอื่ ควบคุมโปรแกรมใหทำงานตามตองการ โดยคำส่งั เง่อื นไขในภาษา Java มดี วยกนั ดังตอไปน้ี 7.1.1 คำสัง่ if เปนคำสั่งที่ใชในการตรวจสอบเงื่อนไขตาง ๆ โดยสามารถใชคำสั่ง If เพื่อใชในการ เปรยี บเทยี บเงอื นไขเพื่อใหโ ปรแกรมทำงานหรอื ไมทำงานบางคำสัง่ ซึง่ มีรปู แบบการใชงานดังน้ี if (expression) { statements } โดยในบล็อคของคำส่งั If นัน้ จะทำงานก็ตอเมอ่ื expression เปน true เทานน้ั ถาหากเปน false โปรแกรมจะขา มบลอ็ กคำสง่ั นน้ั ตามตัวอยา งในรปู ท่ี 7.1 _________________________________________________________________________ เรียบเรียงโดย: อาจารยภ ูรวิ ัฒน เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยกี ารจดั การ
เอกสารประกอบการสอน วิชาการเขียนโปรแกรมคอมพิวเตอร (11-413-202) 99 รปู ที่ 7.1 ตัวอยางคำส่งั if จากตวั อยางเปน โปรแกรมตรวจสอบสิทธิ์การเขา ใชงานดวยคำส่ัง if ในบลอ็ คของคำสง่ั if อัน แรกจะตรวจสอบวา username นี้มีสิทธิ์การเขาใชงานหรือไมหากของ expression เปน true จะ แสดงขอความ “Your username has a permission.” ทางจอภาพ และบล็อคคำสั่ง if อันที่สอง เปนการตรวจสอบการเขา ใชง านโดยมกี าตรวจสอบสองอยางคอื username และ password หากผล ของ expression เปน true จะแสดงขอความ “You’ re now logged in.” ทางจอภาพ ตัวอยาง ผลลพั ธท ่ีเกดิ จากการทำงานของคำสั่ง if ทั้งสองคำสัง่ ในกรณีที่ expression เปน true ดังรูปท่ี 7.2 รูปที่ 7.2 ตวั อยางผลการรนั คำสง่ั if 7.1.2 คำสง่ั if-else คำสั่ง if-else เปนคำสั่งเลือกทำอยางใดอยางหนึ่งขึ้นอยูกับผลของ expression โดยมี รปู แบบการใชงานดงั นี้ _________________________________________________________________________ เรยี บเรียงโดย: อาจารยภ รู วิ ฒั น เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยกี ารจัดการ
100 เอกสารประกอบการสอน วชิ าการเขียนโปรแกรมคอมพิวเตอร (11-413-202) if (expression) { statements } else { statements } ใชในกรณีที่มี expression เปน true ใหทำงานที่บล็อกคำสั่ง if ถาเปน false ใหทำงานท่ี บล็อกคำสัง่ else ยกตวั อยางคำส่งั if-else ดงั รูปที่ 7.3 รปู ท่ี 7.3 ตัวอยางคำส่ัง if-else จากตัวอยางเปนโปรแกรมตรวจสอบสิทธิ์การใชงานเชนกัน แตในกรณีนี้หากผลของ expression เปน true จะแสดงขอ ความ “You're now logged in.” และถา expression เปน false จะแสดงขอความ “Your username or password is incorrect.” เชนผลลัพธการรันโปรแกรมใน กรณีท่ี expression เปน false เนื่องจาก password มีคา เปน abcd ดงั รปู ท่ี 7.4 รปู ที่ 7.4 ตวั อยา งผลการรนั คำสั่ง if-else _________________________________________________________________________ เรียบเรยี งโดย: อาจารยภรู ิวัฒน เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจดั การ
เอกสารประกอบการสอน วชิ าการเขยี นโปรแกรมคอมพิวเตอร (11-413-202) 101 7.1.3 คำสง่ั if-else-if คำสง่ั if-else-if เปนคำส่ังทีใ่ ชใ นกรณีทมี่ หี ลายเงอ่ื นไข และการทำงานในแตล ะอยา งแตกตาง กนั ออกไปโดยมรี ปู แบบคำส่ังตอไปน้ี if (expression) { statements } else if (expression) { statements } else if(expression) { statements } else { statements } สำหรบั ตัวอยา งคำสัง่ if-else-if จะเปนโปรแกรมคำนวณเกรดตามคะแนนทร่ี ับขอ มูลจากผใู ช ซ่งึ แบง ระดบั คะแนนออกเปน 5 เกรด คอื A, B, C, D, F ดังรปู ที่ 7.5 รูปท่ี 7.5 ตัวอยา งคำสง่ั if-else-if _________________________________________________________________________ เรียบเรียงโดย: อาจารยภูริวัฒน เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจดั การ
102 เอกสารประกอบการสอน วิชาการเขียนโปรแกรมคอมพิวเตอร (11-413-202) จากตัวอยางโปรแกรม if คำสั่งแรกเปนการตรวจสอบวาคะแนนที่ผูใชใสมานั้นอยูในชวง คะแนน 0-100 หรือไม หาก expression เปน true จะแสดงขอความ “You must enter a correct score, try again later.” เพื่อแจงขอความบอกผูใช แตหาก expression เปน false ซึ่งหมายถึง คะแนนอยูในชว ง 0-100 โปรแกรมจะนำคะแนนไปตรวจสอบดวยคำสัง่ if-else-if เชน หากผใู ชกรอก คะแนนเปน 77 จะทำให expression ในบล็อกของ else if (score >=70) เปนจริงโปรแกรมก็จะ ทำงานคำสงั่ ที่อยูใ นบลอ็ คนั้นและไมสนใจคำสง่ั ในบล็อคทเี่ หลอื ตามตัวอยา งผลลัพธการรนั โปรแกรม ในรูปท่ี 7.6 รูปที่ 7.6 ผลลพั ธการันโปรแกรมตัวอยางคำส่ัง if-else-if 7.1.4 คำสั่ง Nested if-else โดยทวั่ ไปคำสั่ง if-else ทผี่ านมาน้นั สามารถนำมาซอ นกนั ไดอยางไมจ ำกัด ตามหลกั การเขยี น โปรแกรมพื้นฐานการซอนกันจะอยูในบลอ็ คคำสั่งของอีกคำส่ัง ซึ่งข้ึนอยูกับโปรแกรมนัน้ ออกแบบไว อยา งไร โดยมีรูปแบบคำสั่งดงั นี้ _________________________________________________________________________ เรียบเรยี งโดย: อาจารยภูริวฒั น เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยกี ารจัดการ
เอกสารประกอบการสอน วชิ าการเขยี นโปรแกรมคอมพิวเตอร (11-413-202) 103 if (expression) {// nested level 1 if (expression) {// nested level 2 if (expression) { statement } } } else {// nested level 1 if (expression) { statement } } 7.1.5 คำสง่ั switch-case Switch-case เปนคำสั่งในการเลือกทำงานของเง่ือนไขที่ตรงกันเพยี งแคเ ง่ือนไขเดียวเทาน้ัน ในการใช Switch นัน้ จะคลา ยกบั คำสัง่ if-else-if โดยมรี ูปแบบคำสั่งดงั นี้ switch (parameter) { case instant_value_1: statement; break; case instant_value_2: statement; break; case instant_value_3: statement; break; . case instant_value_n: statement; break; default: statement; } _________________________________________________________________________ เรียบเรียงโดย: อาจารยภรู ิวฒั น เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจัดการ
104 เอกสารประกอบการสอน วชิ าการเขยี นโปรแกรมคอมพิวเตอร (11-413-202) คำสั่ง switch-case จะรับคาพารามเิ ตอรเขามาไดแคเ พยี ง 1 คา จากนั้นพารามิเตอรนั้นจะ ถูกเปรียบเทียบกับคา คงที่ท่ีอยูใ นคำสั่ง case และเมื่อตรงกบั case ไหนโปรแกรมก็จะทำคำสั่งหลัก จาก case นนั้ จนหมด ซงึ่ หมายความวา คำสัง่ break มีไวเ พ่ือไมใหโปรแกรมไปทำงานของ case ที่อยู ตอไป และคำสัง่ default นัน้ โปรแกรมจะทำในกรณีที่คา พารามิเตอรไมตรงกบั คาคงทใ่ี น case ใดเลย ซึ่งจะทำเปนคำสงั่ สดุ ทา ยจงึ ไมต อ งมคี ำส่ัง break เชน เดียวกบั คำสั่ง if-else-if ในคำสง่ั else สุดทาย จะไมมี expression เชนเดยี วกัน สำหรับตวั อยางคำสั่งนี้จะยกตวั อยางการทำงานของลิฟต โดยผูใช กดปมุ ขัน้ ท่ตี อ งการไป ผใู ชสามารถกดตัวอักษรอะไรกไ็ ด ดังรปู ที่ 7.7 รูปที่ 7.7 ตวั อยางคำสัง่ switch-case จากตวั อยา งมกี ารใชคำสั่ง reader.next().charAt(0); เพราะตอ งการอา นคา ทเ่ี ปนตวั อกั ษร เพียง 1 ตวั ซ่ึงในตวั อยางนหี้ ากผูใชปอ นคา เลข 2 เขา มาโปรแกรมจะแสดงขอ ความดังรปู ท่ี 7.8 _________________________________________________________________________ เรยี บเรยี งโดย: อาจารยภ ูรวิ ัฒน เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจัดการ
เอกสารประกอบการสอน วิชาการเขยี นโปรแกรมคอมพวิ เตอร (11-413-202) 105 รปู ที่ 7.8 ผลลพั ธการรันโปรแกรมตัวอยางคำสงั่ switch-case 7.2 คำสัง่ วนซ้ำ คำสั่งวนซ้ำ (loop statements) เปนคำสั่งที่ทำใหสามารถควบคุมโปรแกรมใหทำงานตาม คำสั่งใดคำสัง่ หนึ่งซ้ำ ๆ ได ถาหากเงื่อนไขนั้นยังคงเปน จริง เปนคำสั่งที่มีประโยชนอ ยางมากในการ เขยี นโปรแกรม คือ while, do-while, for ตอ ไปน้ี 7.2.1 while คำส่ังวนซ้ำทงี่ า ยทีส่ ดุ ในภาษา Java คอื คำสง่ั While โดยมรี ปู แบบในการใชง านดงั น้ี while ( expression ) { statements } การใชงานคำสั่ง while สำหรับการสราง loop และ expression คือเงื่อนไขที่จะทำให โปรแกรมทำงานใน loop ถาเงื่อนไขนั้นเปน true โปรแกรมจะทำงานคำสั่งท่ีอยูใ นวงเล็บปกกา { } และเมื่อเงื่อนไขเปน false โปรแกรมจะออกจาก loop และทำงานคำสั่งตอไปที่อยูตอจากคำสั่ง while ตวั อยางโปรแกรมคำสง่ั while ดงั รปู ท่ี 7.9 _________________________________________________________________________ เรียบเรียงโดย: อาจารยภูริวฒั น เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจัดการ
106 เอกสารประกอบการสอน วิชาการเขยี นโปรแกรมคอมพิวเตอร (11-413-202) รปู ท่ี 7.9 ตัวอยางคำสงั่ while จากตัวอยางมีการประกาศตัวแปร i เพื่อใชในการนับ เงื่อนไขของ while คือ ถาคาของ i นอ ยกวา หรือเทากบั 10 while (i <= 10) โปรแกรมจะทำงานใน loop และแสดงคาวา Java และคา i ออกมา แตละรอบจะมีการเพิ่มคาใหกับตัวแปร i ดวยคำสั่ง ++i; เพื่อปองกันไมให loop ทำงาน ตลอดไป (infinity loop) จนเมื่อเงือ่ นไขเปน false โปรแกรมจึงออกจาก loop และทำงานในคำสั่ง ตอไป คอื การพิมพข อ ความ “End” ทางหนา จอ ตามตัวอยา งผลการนั โปรแกรมในรูปที่ 7.10 รูปท่ี 7.10 ผลลัพธการรนั โปรแกรมตัวอยา งคำส่งั while _________________________________________________________________________ เรยี บเรยี งโดย: อาจารยภูริวฒั น เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยกี ารจดั การ
เอกสารประกอบการสอน วชิ าการเขียนโปรแกรมคอมพวิ เตอร (11-413-202) 107 7.2.2 do-while คำสั่ง do-while นั้นจะมีการทำงานแตกตางจากคำส่ัง while เล็กนอยคือ คำสั่ง do-while จะทำงานคำสัง่ ใน loop กอนอยางนอย 1 ครั้งและหลังจากนั้นจะทำการตรวจสอบเงื่อนไขที่อยูด า น ทายของ loop มรี ปู แบบดงั น้ี do { statements } while (expression); สำหรบั ตัวอยางในคำสัง่ นีจ้ ะเปน โปรแกรมตรวจสอบตวั เลขวา เปนเลขคูหรอื ค่ี (even or odd number) โดยใชค ำส่งั do-while โดยหากผใู ชป อ นตัวเลขเปน เลขคโู ปรแกรมจะทำงานตอ ไปเร่ือย ๆ และเม่ือผูใชป อนตัวเลขคี่โปรแกรมจะออกจากคำส่ัง do-while และทำงานในคำสัง่ ตอ ไป เชน รูปที่ 7.11 ตัวอยา งคำสัง่ do-while _________________________________________________________________________ เรียบเรียงโดย: อาจารยภ ูรวิ ฒั น เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจดั การ
108 เอกสารประกอบการสอน วชิ าการเขียนโปรแกรมคอมพิวเตอร (11-413-202) คำสั่ง number % 2 == 0 เปนเงื่อนไขเพื่อตรวจสอบวาตัวเลขที่ผูใชปอนมานั้นเปนเลขคู หรือไม โดยใชต ัวดำเนนิ การ mod ดว ยเลข 2 ถา ผลออกมาแลว มเี ศษเปน 0 แสดงวาเลขน้ันเปนเลขคู จึงไดผ ลลพั ธจากการรันดงั ตอไปนี้ รปู ที่ 7.12 ผลลัพธการรันโปรแกรมตัวอยางคำส่งั do-while 7.2.3 for คำสั่ง for เปน loop ที่นิยมใชกันเปนจำนวนมากเนื่องจาก for มักจะใชกับ loop ที่ทราบ จำนวนรอบการวนซ้ำที่แนนอน และสะดวกในการประกาศตัวแปรเริ่มตน กำหนดเงื่อนไข และการ เพิ่มหรือลดคาไวท่เี ดียวกัน ซ่งึ ตวั แปรทปี่ ระกาศข้ึนใน loop จะใชไ ดเพียงใน loop scope เทาน้ัน มี รูปแบบคำสัง่ ดงั นี้ For (initial; condition; update) { statements } รปู แบบของคำสงั่ for จะมีสว นประกอบหลกั 3 สวน คือ Initial คอื การกำหนดคา ใหก ับตวั แปรเรมิ่ ตนของ loop condition คือ การกำหนดเง่ือนไขท่ีให loop ทำงาน update คอื การเปลีย่ นแปลงคาใหก บั ตวั แปรเริ่มตนเพ่อื ใชในการทดสอบเงอ่ื นไข _________________________________________________________________________ เรียบเรียงโดย: อาจารยภูริวฒั น เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจดั การ
เอกสารประกอบการสอน วิชาการเขียนโปรแกรมคอมพิวเตอร (11-413-202) 109 จะเห็นวา สว นท่ใี ชใ นการกำหนดการทำงานของ loop น้นั จะอยทู ีส่ วนหวั ของคำสั่งซ่ึงงายตอการ ใชงาน ตัวอยางโปรแกรม เชน หากตองการพิมพขอความแสดงทางหนาจอภาพ จำนวน 10 ครั้ง สามารถเขียนโปรแกรมไดดงั รูปท่ี 7.13 รูปที่ 7.13 ตัวอยางคำสง่ั for จากตัวอยางเปน การแสดงขอความ Java ตามดวยรอบการวนซ้ำ ซงึ่ จะไดผลลัพธท ่ีเหมอื นกนั กบั คำสง่ั while ดงั รปู ที่ 7.14 รปู ที่ 7.14 ผลลัพธการรนั โปรแกรมตัวอยา งคำสง่ั for _________________________________________________________________________ เรยี บเรียงโดย: อาจารยภ รู ิวฒั น เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยกี ารจัดการ
110 เอกสารประกอบการสอน วิชาการเขียนโปรแกรมคอมพวิ เตอร (11-413-202) 7.2.4 nested loop Nested loop หมายถึง loop ทุกชนิดสามารถที่จะนำมาซอนกันได เชนเดียวกับคำสั่ง if- else โดยในตวั อยา งนี้จะเปน โปรแกรมสรางแมทริกขนาด 2 มิติ ท่ีใชคำส่ัง for ซอนกัน ดงั รปู ที่ 7.15 รปู ท่ี 7.15 ตวั อยา งคำส่ัง nested loop จากตวั อยา งกำหนดใหความกวาง (width) และความสูง (height) ของแมทริกมีคา เทากับ 3 ดังนั้นแมทริกจะมีขนาด 3x3 โดย loop นอก (outer loop) จะทำงานวนรอบตามจำนวนในตัวแปร height และลปู ดานใน (inner loop) จะทำการวนรอบตามจำนวนตัวแปร width ผลลัพธทไ่ี ดน ้นั เกิด จาก คาของ i * j ตามรูปที่ 7.16 รูปท่ี 7.16 ผลลัพธการรนั โปรแกรมตัวอยา งคำสง่ั nested loop _________________________________________________________________________ เรยี บเรยี งโดย: อาจารยภ ูริวฒั น เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจัดการ
เอกสารประกอบการสอน วชิ าการเขียนโปรแกรมคอมพิวเตอร (11-413-202) 111 7.2.5 คำส่งั continue คำสง่ั Continue คอื คำสัง่ ทใี่ ชใ นการขามการทำงานของลูปในรอบปจจบุ นั นนั่ หมายความวา ลูปจะเรม่ิ ตนคำสั่งใหมท นั ทเี มื่อเจอคำสั่ง continue; สำหรบั ตวั อยา งการใชค ำสัง่ Continue ในภาษา Java ดงั รปู ที่ 7.17 รปู ท่ี 7.17 ตัวอยา งคำสงั่ continue จากตัวอยางโปรแกรมคำสงั่ continue เปนโปรแกรมแสดงตวั เลขจาก 10 และลดลงทีละ 1 เม่ือคาของตวั เลขลดลงมาอยทู ่ี 5 จะทำใหคำส่งั if (i == 5) มี expression เปน true โปรแกรมจงึ ทำงานในคำสงั่ continue ทำใหโปรแกรมขา มการแสดงผลเลข 5 ไปตามตัวอยางผลลัพธใ นรปู ที่ 7.18 รูปที่ 7.18 ผลลพั ธการรันโปรแกรมตัวอยา งคำสัง่ continue 7.2.6 คำส่ัง break คำสั่ง break เปนคำสงั่ ทใี่ ชใ นการหยุดการทำงานของลูปในทันทโี ดยที่ไมสนใจวา เง่ือนไขการ ทำงานของ loop ยงั มี expression เปน true อยูหรือไม เมื่อโปรแกรมเจอคำสัง่ break โปรแกรมจะ ออกจาก loop และทำงานคำส่งั ตอ ไปท่อี ยูตอจาก loop ทันนี้ ตามตัวอยางในรปู ท่ี 7.19 _________________________________________________________________________ เรยี บเรียงโดย: อาจารยภูรวิ ัฒน เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจดั การ
112 เอกสารประกอบการสอน วิชาการเขียนโปรแกรมคอมพิวเตอร (11-413-202) รูปที่ 7.19 ตวั อยางคำสัง่ break จากตวั อยางนไี้ ดท ำการเปล่ียนคำส่งั จาก continue ในตวั อยา งที่ 7.17 เปนคำส่งั break และเมอื่ โปรแกรมเจอคำสง่ั break โปรแกรมจะออกจาก loop ทนั ทีทำใหไ ดผลลพั ธก ารรันดงั รปู ที่ 7.20 รูปที่ 7.20 ผลลพั ธการรนั โปรแกรมตัวอยา งคำส่งั break เนื้อหาในบทนี้ถือเปนพื้นฐานที่มีความสำคัญอยางมากในการเขียนโปแกรม ซึ่งจะชวยให ผูเขียนโปรแกรมสรางโปรแกรมที่สามารถทำงานไดอ ยางมีประสิทธิภาพตามที่ไดออกแบบไว การใช งานคำสั่งเหลา นีม้ อี ยูใ นทกุ ๆ ภาษาคอมพิวเตอร เพียงแตอาจจะมีรูปแบบในการเขียนที่แตกตางกัน เลก็ นอ ย หากผูเ ขียนโปรแกรมเขา ใจหลกั การทำงานกส็ ามารถนำไปประยุกตใ ชก ับภาษาคอมพิวเตอร อ่นื ได เนือ่ งจากมีหลกั การทำงานเดยี วกนั ในบทตอ ๆ ไปจะมกี ารนำคำส่งั เหลา นไี้ ปใช เชน array เปน ตน _________________________________________________________________________ เรียบเรียงโดย: อาจารยภูริวฒั น เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยกี ารจดั การ
เอกสารประกอบการสอน วิชาการเขยี นโปรแกรมคอมพวิ เตอร (11-413-202) 113 แบบฝกหดั บทที่ 7 1. จงเขยี นโปรแกรมเพอื่ รับคา ตวั เลขจากผูใช จากนนั้ แสดงวาคาน้ันเปน จำนวนเตม็ บวก (positive) หรือจำนวนเต็มลบ (negative) 2. จงเขียนโปรแกรมเพื่อรบั คา ตวั เลข 3 จำนวน จากนนั้ แสดงคาตวั เลขทีม่ ขี นาดมากท่ีสดุ 3. จงเขียนโปรแกรมรบั คาตัวเลขจำนวนเต็ม 1-7 จากนั้นใหแสดงวันในสัปดาหต ามตวั เลข เชน 1 = Sunday 4. จงเขียนโปรแกรมเพื่อรับคาตัวเลข 5 จำนวนโดยการใชคำสั่งวนซ้ำ จากนั้นแสดงผลรวม และ คาเฉลี่ยทางจอภาพ 5. จงเขยี นโปรแกรมรับคาตัวเลขจากผใู ช จากนนั้ แสดงตารางสูตรคูณทางจอภาพ 6. จงเขียนโปรแกรมเพ่ือแสดงรูปแบบตามตวั อยา งโดยการใชคำส่ังวนซ้ำ 1 12 123 1234 12345 123456 1234567 12345678 123456789 12345678910 _________________________________________________________________________ เรยี บเรยี งโดย: อาจารยภ รู ิวัฒน เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยกี ารจดั การ
114 เอกสารประกอบการสอน วิชาการเขยี นโปรแกรมคอมพิวเตอร (11-413-202) วิธกี ารสอนและกจิ กรรม 1. สอนแบบบรรยายโดยใชสอื่ ประกอบการสอน 2. ใหน กั ศึกษามสี ว นรว มในกจิ กรรมระหวา งการเรยี นการสอนโดยใชว ิธกี ารถาม-ตอบ 3. ปฏิบัตกิ ารเขียนโปรแกรมคำสงั่ เลอื กเงื่อนไขและวนซ้ำ เอกสารประกอบ เอกสารประกอบการสอน บทท่ี 6 คำสง่ั เลอื กเงอ่ื นไขและ วนซ้ำ สอ่ื การสอน สอ่ื ประกอบการสอน ไฟลนำเสนอ power point บทท่ี 6 คำสั่งเลอื กเงือ่ นไขและ วนซ้ำ โสตทัศนวสั ดุ เคร่ืองฉายโปรเจคเตอร งานท่มี อบหมาย 1. ศึกษาการใชค ำส่งั เลือกเงอ่ื นไข และคำส่ังวนซ้ำ 2. แบบฝก หดั การใชค ำสัง่ เลอื กเง่อื นไข และคำสงั่ วนซำ้ การวัดผล 1. สงั เกตพฤตกิ รรมการเรยี นในหอ งเรยี น 2. สังเกตพฤติกรรมการมสี วนรว มในกจิ กรรมระหวางการเรยี นการสอนในการถาม-ตอบ 3. ตรวจงานทมี่ อบหมาย 4. ทดสอบตามจุดประสงคก ารสอน บนั ทกึ การสอนและขอ สงั เกต …………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………… ………………………………………………………………………………… _________________________________________________________________________ เรยี บเรียงโดย: อาจารยภ ูรวิ ัฒน เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยกี ารจดั การ
เอกสารประกอบการสอน วิชาการเขยี นโปรแกรมคอมพิวเตอร (11-413-202) 115 สัปดาหท ี่ 9 ใบเตรียมการสอน เวลา 4 ชั่วโมง บทท่ี 8 อาเรย 8.1 การประกาศอาเรย 8.2 อาเรย 2 มิติ 8.3 อาเรย 3 มิติ จดุ ประสงคการสอน 8.1 เขา ใจหลักการทำงานของอาเรย 8.2 สามารถประกาศตัวแปรอาเรยแ บบ 1 มิติ 2 มติ ิ และกำหนดคาเริ่มตน ใหกับอาเรย 8.3 สามารถเขา ถงึ ขอมลู ที่อยใู นตวั แปรชนิดอาเรย 8.4 สามารถประยุกตใชตัวแปรอาเรยรวมกบั คำสั่งอืน่ ๆ ได _________________________________________________________________________ เรยี บเรยี งโดย: อาจารยภ ูริวฒั น เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจดั การ
116 เอกสารประกอบการสอน วิชาการเขียนโปรแกรมคอมพวิ เตอร (11-413-202) บทท่ี 8 อาเรย อาเรย (Array) คือ ชุดของตวั แปรท่ีแสดงอยูในรปู ของลำดบั ที่ เพอ่ื ใชเกบ็ คา ของขอมลู ท่อี ยูใน กลมุ เดียวกนั อาเรยจะแตกตา งไปจากตัวแปรท่ัวไป คือ ตัวแปรทว่ั ไปจะถูกเกบ็ อยูในหนวยความจำ ใน แตละตำแหนง ท่ีไมต อเนอื่ งกนั สวนตัวแปรประเภทอาเรยจะถกู เกบ็ อยใู นหนวยความจำในตำแหนงท่ี ตอเนื่องกัน ซึ่งจะใชขนาดพื้นที่ในหนวยความจำเทาไรนั้น ขึ้นอยูกับจำนวนมิติ (Dimension) และ จำนวนสมาชกิ ทีก่ ำหนด 8.1 การประกาศอาเรย การประกาศอาเรยในภาษา Java น้ันมอี ยู 3 รปู แบบ ดังตอ ไปน้ี type [ ] var_name; type [ ] var_name = new type[size]; type [ ] var_name = new type[ ] {value1, value2, ...}; โดยท่ี type คอื ประเภทของขอมลู หรือคลาส name คอื ชือ่ ตวั แปรอาเรย new คอื คำสัง่ ท่ใี ชในการจองพื้นที่หนว ยความจำสำหรับอาเรย size คือ ขนาดของอาเรยตองเปน จำนวนเตม็ บวก _________________________________________________________________________ เรยี บเรียงโดย: อาจารยภรู วิ ฒั น เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจดั การ
เอกสารประกอบการสอน วชิ าการเขียนโปรแกรมคอมพิวเตอร (11-413-202) 117 รูปที่ 8.1 ตวั อยา งโปรแกรมการประกาศอาเรย จากรูปที่ 8.1 ประกาศตัวแปรอาเรยชื่อ number ที่สามารถเก็บคาขอมูลท่ีเปนจำนวนเตม็ (int) 4 จำนวน การเขาถึงอาเรยสามารถเขาถึงไดดวย index ซึ่งมีคาเปนจำนวนเต็ม เชน number [index] โดย index ของอาเรยจะเริ่มตนดวยตำแหนงที่ 0 เสมอ ซึ่งหมายความวาจะมี index นอย กวาขนาดอาเรยอยู 1 เสมอ การหาขนาดของอาเรยสามารถใชคณุ สมบตั ขิ องอาเรยดว ยคำสงั่ length จะสง คา กลับมาเปน จำนวนเต็ม System.out.println(\"Array size is \" + number.length); นอกจากน้จี ากตวั อยา งโปรแกรมยงั มีการประกาศอาเรยประเภท String สำหรบั เก็บขอความ ที่ขนาดเทา กบั 3 ในตัวอยางนี้จะใชคำส่ัง for loop ในการวนอานคาจากอาเรยโดยใช I เปน Index เพ่อื เขาถึงอาเรย และเมื่อรันโปรแกรมตวั อยางนจ้ี ะไดผ ลลัพธด ังรปู ที่ 8.2 _________________________________________________________________________ เรยี บเรยี งโดย: อาจารยภ ูรวิ ฒั น เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจัดการ
118 เอกสารประกอบการสอน วชิ าการเขียนโปรแกรมคอมพิวเตอร (11-413-202) รปู ที่ 8.2 ผลลพั ธการรนั ตวั อยา งโปรแกรมการประกาศอาเรย การประกาศอาเรยยงั สามารถทำไดพ รอมกับการกำหนดคา เร่มิ ตน โดยมีรปู แบบการประกาศ อาเรยตอ ไปน้ี int[ ] number = { 2, 11, 15, 18, 22, 27, 16, 30 }; // shorter version int[ ] number = new int[ ] { 2, 11, 15, 18, 22, 27, 16, 30 }; 8.2 อาเรย 2 มติ ิ อาเรย 2 มิติ น้นั จะมลี กั ษณะการเกบ็ คาขอ มูลเหมอื นการเก็บคาในตารางทีม่ แี ถว (Row) และ คอลัมน (Column) มรี ูปแบบการประกาศอาเรย 2 มิติ ดังนี้ type [ ][ ] name = new type[ROW][COLUMN]; การประกาศอาเรย 2 มติ ิ นั้นจะคลา ยกบั อาเรย 1 มติ ิ แตจ ะใชเคร่อื งหมาย [ ][ ] โดยแตละ คูนั้นแสดงสำหรับแถวและคอลัมนโดย row คือ จำนวนของแถวอาเรย และ column คือ ขนาด คอลมั นของอาเรย ดงั นน้ั จงึ สามารถคำนวณหาขนาดของอาเรย 2 มติ ิ ไดโ ดยการนำ row x column ตวั อยา งเชน int [ ][ ] number = new int[3][3]; char [ ][ ] c = new char[ ][ ] { {'A', 'B', 'C'}, {'D', 'E', 'F'} }; _________________________________________________________________________ เรยี บเรยี งโดย: อาจารยภ รู ิวัฒน เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจดั การ
เอกสารประกอบการสอน วิชาการเขียนโปรแกรมคอมพิวเตอร (11-413-202) 119 ตัวอยางดานบนเปนการประกาศอาเรย 2 มิติ แบบแรก คือ ประกาศอาเรยสำหรับเก็บคา จำนวนเต็มมีขนาดเปน 3x3 เมื่อประกาศอาเรยโดยมีคำสั่ง new แลวแตยังไมไดกำหนดคาใหกับ อาเรย คาในอาเรยท้ังหมดจะเปนคาเริ่มตน (default) คือ 0 และหากคาเริม่ ตนถูกกำหนดพรอมกบั การประกาศอาเรยจึงไมจำเปนตองใสข นาดใหกับอาเรยในตัวอยางแบบที่สอง มีตัวอยางโปรแกรม อาเรยแ บบ 2 มิติ ดังรูปท่ี 8.3 รูปที่ 8.3 ตัวอยางโปรแกรมการประกาศอาเรย 2 มติ ิ ในตัวอยางเปนการประกาศอาเรย 2 มิติ ที่มีขนาด 3x3 และใช nested loop ในการ กำหนดคา ใหกบั อาเรยโ ดยคาแรกคือ 10 และเพิ่มข้นึ ครั้งละ 5 จากตัวแปร data โดย loop ดา นนอก จะเปน Row และ loop ดา นในจะเปน Column จากนน้ั จะเปน การแสดงขอมูลทอ่ี ยูในอาเรยโดยใช nested loop เชน กัน เม่อื รันโปรแกรมจะไดผลลัพธด งั รูปท่ี 8.4 _________________________________________________________________________ เรยี บเรียงโดย: อาจารยภรู วิ ัฒน เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจัดการ
120 เอกสารประกอบการสอน วิชาการเขียนโปรแกรมคอมพิวเตอร (11-413-202) รปู ท่ี 8.4 ผลลพั ธก ารรนั ตวั อยา งโปรแกรมการประกาศอาเรย 2 มิติ 8.3 อาเรย 3 มติ ิ และอาเรยห ลายมติ ิ นอกจากอาเรย 1 มติ ิ และ 2 มติ ิ แลว ยงั สามารถประกาศอาเรย 3 มติ ิ 4 มติ ิ และ 5 มิติได ตามตองการ โดยการเพิ่มเคร่อื งหมาย [ ] แตอ ยางไรกต็ ามในการเขียนโปรแกรม เรามักจะใชง านมาก ทีส่ ดุ 3 มิติ มีรูปแบบการประกาศอาเรยห ลายมติ ิไดด ังน้ี int [ ][ ][ ] threeDimension = new int[3][4][5]; int [ ] ... [ ] multiDimension = new int[dim_1] ... [dim_n]; _________________________________________________________________________ เรยี บเรยี งโดย: อาจารยภ รู ิวัฒน เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยกี ารจดั การ
เอกสารประกอบการสอน วชิ าการเขยี นโปรแกรมคอมพิวเตอร (11-413-202) 121 แบบฝก หดั บทที่ 8 1. จงเขยี นโปรแกรมเพอ่ื คำนวณเกรดวิชา Computer Programming และแสดงผลลพั ธอ อกทาง จอภาพ โดยใหคิดเงอื่ นไขดังนี้ ถา คะแนน มากกวาหรือเทากับ 80 ใหเกรด A 70 – 79 เกรด B 60 – 69 เกรด C 50 – 59 เกรด D นอยกวากวา 50 เกรด F โดยการคำนวณเกรดจะแบงสวนคะแนนออกเปน คะแนนปฏิบัติ 20 คะแนน รายงาน 20 คะแนน สอบกลางภาค 30 คะแนน และสอบปลายภาค 30 คะแนน รวมคะแนนทั้งหมด 100 คะแนน นักศึกษาแตล ะคนมคี ะแนนสอบดงั น้ี (รบั ขอมลู เขา ทางคียบอรด) Student Name Lab Report Mid-Term Final-Term 1. ชัยชนะ จรสั ชัยประชา 2. ของขวัญ ดลิ กธรรมสกลุ 15 17 20 19 3. ธนีดา กมลไพศาล 4. ธาวติ เชาวกรกุล 17 16 18 19 5. โอฬาร ตันติวงษไ พบลู ย 12 19 19 16 11 15 21 22 15 12 18 21 2. จงเขยี นโปรแกรมเพอ่ื รบั คาขอมลู จำนวนเต็มจากผูใช (รบั ขอมูลเขา ทางคยี บ อรด ) 20 จำนวน เก็บ ไวในตวั แปร array จากนั้นใหแยกขอมลู ออกเปน 2 กลุม คอื เลขคู และเลขค่ี แสดงผลโดยเรยี งลำดบั ขอมลู จากนอยไปมาก Data input 2, 5, 84, 63, 72, 98, 45, 12, 11, 23, 58, 78, 36, 34 Even Number 2, 12, 34, 36, 58, 72, 78, 84, 98 Odd Number 5, 11, 23, 45, 63 _________________________________________________________________________ เรียบเรยี งโดย: อาจารยภูริวฒั น เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจัดการ
122 เอกสารประกอบการสอน วชิ าการเขียนโปรแกรมคอมพิวเตอร (11-413-202) วิธกี ารสอนและกิจกรรม 1. สอนแบบบรรยายโดยใชส ่อื ประกอบการสอน 2. ใหน ักศกึ ษามีสว นรว มในกจิ กรรมระหวา งการเรยี นการสอนโดยใชว ธิ กี ารถาม-ตอบ 3. ปฏิบัติการเขยี นโปรแกรมการใชงานอาเรย 1 มติ ิ และหลายมิติ เอกสารประกอบ เอกสารประกอบการสอน บทที่ 8 อาเรย สอื่ การสอน สอ่ื ประกอบการสอน ไฟลนำเสนอ power point บทท่ี 8 อาเรย โสตทัศนวัสดุ เคร่ืองฉายโปรเจคเตอร งานท่ีมอบหมาย 1. ศกึ ษาการประกาศอาเรยแบบ 1 มิติ 2 มิติ และหลายมิติ 2. แบบฝก หัดการเขียนโปรแกรมโดยใชอ าเรย การวดั ผล 1. สงั เกตพฤตกิ รรมการเรยี นในหอ งเรียน 2. สงั เกตพฤติกรรมการมสี ว นรวมในกจิ กรรมระหวา งการเรียนการสอนในการถาม-ตอบ 3. ตรวจงานทมี่ อบหมาย 4. ทดสอบตามจดุ ประสงคก ารสอน บันทึกการสอนและขอ สังเกต …………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………… _________________________________________________________________________ เรียบเรียงโดย: อาจารยภูรวิ ัฒน เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจดั การ
เอกสารประกอบการสอน วิชาการเขยี นโปรแกรมคอมพิวเตอร (11-413-202) 123 สปั ดาหท่ี 10 ใบเตรยี มการสอน เวลา 4 ช่วั โมง บทท่ี 9 คลาสสตรงิ 9.1 การประกาศ String 9.2 การตอ String 9.3 เมธอดในคลาส String 9.4 การเปรียบเทยี บ String จดุ ประสงคก ารสอน 9.1 เขาใจวธิ ีการประกาศตัวแปรชนดิ String การเกบ็ ขอ มลู และการแสดงผลทางจอภาพ 9.2 สามารถเลือกใชงานเมธอดทอี่ ยูในคลาส String ไดอยางเหมาะสม 9.3 เขาใจหลกั การเปรียบเทียบตวั แปรชนิด String _________________________________________________________________________ เรยี บเรียงโดย: อาจารยภ ูริวฒั น เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจัดการ
124 เอกสารประกอบการสอน วิชาการเขยี นโปรแกรมคอมพวิ เตอร (11-413-202) บทที่ 9 สตรงิ การใชงานตวั แปรชนิด String หรอื คลาสของ String ถอื วา สิ่งที่พบเจอบอยท่สี ุดในการเขียน โปรแกรมเพราะ String สามารถจัดเกบ็ รปู แบบขอ ความไดหลากหลาย ท้งั ขอความทั่วไป ท่รี ับคาจาก ผูใช หรือตัวแปรท่ีนำไปแสดงผลทางหนาจอ หรือขอความที่เปนแบบออบเจ็คที่ถูกสรางขึ้นมาแลว จัดเกบ็ ไวใ นตวั แปร สามารถนำไปใชง านอยางอ่ืนได นอกจากนี้ String ยังมีเมธอดสำหรบั การจัดการ ขอมูลเพ่อื ชวยใหผเู ขยี นโปรแกรมสะดวกในการใชง าน ดังน้ี 9.1 การประกาศ String การประกาศตัวแปรชนิด String จะมีอยู 3 รูปแบบ คือ การประกาศตัวแปรพื้นฐานทั่วไป การประกาศตวั แปรแบบออบเจ็ค และการประกาศ String ดวย char array ดงั ตอ ไปนี้ // method 1 String str = \"Declaring string in Java.\"; // method 2 String str2 = new String (\"Creating with String constructor.\"); // method 3 char[] c = new char[] {'C', 'h', 'a', 'r', 'a', 'r', 'r', 'a', 'y'}; String str3 = new String(c); วิธีการแรกเปนวิธีปกติที่มีตัวอยางการใชงานในบทที่ผานมา เปนวิธีที่งายที่สุดโดยการ กำหนดคา String ใหกับตัวแปรโดยใชเครื่องหมาย “ ” (double quote) วิธีการที่สองเปนการ ประกาศ String โดยใช constructor ของคลาส และวิธีสุดทายเปนการประกาศ String ดวย char array รวมกบั constructor ซ่งึ ผลลพั ธท ีไ่ ดน ั้นไมแตกตางกัน _________________________________________________________________________ เรียบเรียงโดย: อาจารยภ รู ิวัฒน เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยกี ารจัดการ
เอกสารประกอบการสอน วชิ าการเขยี นโปรแกรมคอมพวิ เตอร (11-413-202) 125 9.2 การตอ String การตอ String หรือ String concatenation ในบทที่ผานมาไดอธิบายถึงตัวดำเนินการ เกี่ยวกับการตอ String ไปแลวนั้น คือ การนำ String ตั้งแต 1 หรือหลายอันมาตอกันโดยใช เครือ่ งหมาย “+” แตเ นอื่ งจาก String ในภาษา Java เปน คลาสในไลบรารี่ ดงั นั้นการใชเคร่ืองหมาย “+” จงึ เปนวธิ กี ารที่ทำใหเ กดิ overloading operator เชน String firstName = \"Puriwat\"; String lastName = \"Lertkrai\"; String fullName = firstName + \" \" + lastName; ในตัวอยา งเปน การตอ String 2 ตวั เขา ดว ยกัน คือ firstName ตอดว ย lastName แลว นำคา ใหมที่ไดนั้นมาเก็บไวในตัวแปร String ชื่อ fullName ซึ่งมีคาเปน “Puriwat Lertkrai” การใช เครื่องหมาย “+” นอกจากจะตอ String ดว ยกนั แลว ยังสามารถตอ String กับตวั แปรชนดิ อนื่ ดังรปู ที่ 9.1 รปู ท่ี 9.1 ตัวอยางโปรแกรมการตอ String _________________________________________________________________________ เรียบเรียงโดย: อาจารยภ ูริวฒั น เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจัดการ
126 เอกสารประกอบการสอน วิชาการเขียนโปรแกรมคอมพิวเตอร (11-413-202) จากตัวอยางเปนการตอ String กับตัวแปรชนิดอื่น คือ จำนวนเต็ม (integer) คือ ในคำสั่ง System.out.print(\"I'm \"+age+ \" years old.\"); ซ่ึงจะทำใหคา ของตัวแปร integer นน้ั ถกู แปลงเปน String หลักการนี้สามาถเกิดข้ึนไดกับตัวแปรทุกชนิดในกรณีที่มีการตอ ดวย String เมื่อรันโปรแกรม ตวั อยา งจะไดผ ลลัพธตามรูปท่ี 9.2 รูปท่ี 9.2 ผลลพั ธก ารรันตวั อยางโปรแกรมการตอ String 9.3 เมธอดในคลาส String จากที่กลาวขางตน String ในภาษา Java นั้นเปนคลาส ดังนั้นจึงมีเมธอดตาง ๆ ที่สามารถ เรยี กใชง านได เมธอดกค็ ือฟง กชันที่ใชในการจัดการขอ มูลเพอื่ ใหไ ดผลลพั ธตามทตี่ องการ โดยในคลาส String มีเมธอดที่นา สนใจตามตารางที่ 9.1 ตารางท่ี 9.1 ตวั อยา งเมธอดในคลาส String เมธอด คำอธิบาย new String ( text ); ใชสรา ง object string new String ( char_array ); ใชส ราง object string จาก char new String ( char_array, start, count ); ใชสรา ง object string จาก char โดยมกี ารกำหนด ตำแหนงเรมิ่ ตน และจำนวนดวย new String ( object_strint ); ใชสราง object string จาก object string new String ( byte_ascii_array ); ใชสรา ง object string จาก ascii new String ( byte_ascii_array, start, count ); ใชสรา ง object string จาก ascii โดยมีการกำหนด ตำแหนงเริ่มตน และจำนวนดวย new String ( text ); ใชส ราง object string equals() ใชในการเปรียบเทียบขอ ความ compareTo() ใชใ นการเปรียบเทยี บขอความ โดยจะคอ ย ๆ เปรียบเทยี บทีละตวั อักษร จากรหสั ascii ของขอความ string _________________________________________________________________________ เรียบเรยี งโดย: อาจารยภ ูริวฒั น เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยกี ารจดั การ
เอกสารประกอบการสอน วชิ าการเขียนโปรแกรมคอมพวิ เตอร (11-413-202) 127 เมธอด คำอธิบาย ใชรวมขอความ string ( มคี า เหมือนการใชต ัว concat() ดำเนนิ การ \"+\" ) ใชด ึงขอ มูลจากขอความ string โดยเร่ิมจากตำแหนงท่ี substring() กำหนด จนถงึ ตำแหนงที่กำหนด ใชด งึ ขอมลู จากขอ ความ string ณ ตำแหนง ท่ีกำหนด charAt() โดยจะดึงมาเพยี ง 1 ตัวอักษร ใชดึงขอ มูลจากขอ ความ string ต้งั แตต ำแหนงที่กำหนด getChars() จนถงึ ตำแหนง ที่กำหนด ใชแทนทีต่ ัวอักษร replace() ใชค ืนคาจำนวนของขอความ string length() ใชต ดั ชองวางทางดา นขวาและดานซายออกจาก trim() ขอความ string ใชค นหาขอความหรอื ตัวอักษรทกี่ ำหนด เปนการคนหา indexOf() จากหนาไปหลัง และจะคืนตำแหนง แรกที่พบ ใชค น หาขอความหรือตัวอักษรทกี่ ำหนด เปนการคน หา indexOf ( text, start ); จากหนา ไปหลัง โดยจะเริม่ คน หาต้ังแตตำแหนง ท่ี กำหนด และจะคืนตำแหนง แรกท่ีพบ lastIndexOf() ใชคนหาขอความหรอื ตัวอักษรท่ีกำหนด เปนการคน หา lastIndexOf ( text, start ); จากหลังมาหนา และจะคนื ตำแหนงแรกทีพ่ บ ใชคน หาขอความหรือตวั อักษรท่ีกำหนด เปนการคน หา toUpperCase() จากหลังมาหนา โดยจะเรมิ่ คนหาตัง้ แตตำแหนง ที่ toLowerCase() กำหนด และจะคนื ตำแหนงแรกท่ีพบ isEmpty() ใชเปลี่ยนตวั อักษรใหเปนตัวพมิ พใ หญท ้งั หมด ใชเปลี่ยนตัวอักษรใหเ ปนตัวพมิ พเลก็ ทัง้ หมด ใชต รวจสอบ string เปน คาวาง (null) หรือไม _________________________________________________________________________ เรยี บเรยี งโดย: อาจารยภ ูริวฒั น เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจดั การ
128 เอกสารประกอบการสอน วิชาการเขียนโปรแกรมคอมพวิ เตอร (11-413-202) รูปที่ 9.3 ตัวอยางโปรแกรมการใชเมธอดในคลาส String จากรูปท่ี 9.3 เปนตวั อยางโปรแกรมการใชงานเมธอดในคลาส String เชน เมธอด length(); ใชสำหรับหาความยาวของขอความ เมธอด charAt(); สำหรับหาตำแหนงตัวอักษรในตำแหนง ที่ระบุ หรือเมธอด toUpperCase(); ใชส ำหรบั การแปลงตวั อกั ษรใน String ใหเปน ตัวพิมพใ หญทัง้ หมด เปน ตน ผลการรนั โปรแกรมจะได ดงั รปู ที่ 9.4 _________________________________________________________________________ เรียบเรยี งโดย: อาจารยภรู ิวฒั น เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยกี ารจดั การ
เอกสารประกอบการสอน วชิ าการเขียนโปรแกรมคอมพิวเตอร (11-413-202) 129 รูปที่ 9.4 ผลลพั ธการรนั ตัวอยา งโปรแกรมการการใชเมธอดในคลาส String 9.4 การเปรียบเทยี บ String การเปรียบเทียบ String นั้นสามารถทำไดหลายวิธี ซึ่งในภาษา Java ไดจัดเตรียมความ หลากหลายของเมธอดสำหรบั เปรียบเทยี บ String ทจี่ ะใหผลลพั ธท ่ีตางกัน ไดแ ก 9.4.1 การใชตัวดำเนนิ การ (==) วิธกี ารนเี้ ปนการเปรียบเทยี บ String ทัง้ 2 ตัว เพ่อื ตรวจสอบวา เปนออบเจค็ เดียวกันหรือไม เชน String str1 = \"Programming\"; String str2 = \"Programming\"; If (str1 == str2) System.out.println(“Same object.”); else System.out.println(“Difference object.”); _________________________________________________________________________ เรยี บเรียงโดย: อาจารยภ รู ิวฒั น เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยกี ารจัดการ
130 เอกสารประกอบการสอน วิชาการเขียนโปรแกรมคอมพวิ เตอร (11-413-202) ในตัวอยา งเปนการเตรียมเทียบ String 2 ตวั ทีม่ ีคาเหมือนกัน ดงั นั้น expression ของคำส่ัง if จึงมีคาเปน true คำสั่งในบล็อก if จึงทำงานคือพิมพขอความ “Same object” ออกทาง หนาจอภาพ 9.4.2 เมธอด equals (); วธิ ีการนจ้ี ะเปนการเปรยี บเทยี บตัวอกั ษรทกุ ตัวใน String โดยจะตอ งมีตำแหนงเดียวกันและ ตัวอักษรพมิ พเ ลก็ พิมพใหญต องเหมือนกนั String str1 = \"Programming\"; String str2 = \"Programming\"; If (str1.equals(str2)) System.out.println(“str2 equals to str1.”); else System.out.println(“str2 not equals to str1”); ในตัวอยางจะเปนการเปรยี บเทียบ str1 และ str2 โดยวิธีการเปรียบเทียบตัวอักษรทีละตวั หากตวั อกั ษรเหมือนกันทกุ ตำแหนง expression ของคำสงั่ if จะมีคา เปน true หมายถงึ String 2 คา นนั้ เหมือนกัน แตหาก expression เปน false แสดงวา String 2 คา นัน้ ตางกนั 9.4.3 เมธอด compareTo(); เมธอดนี้จะมีการเปรียบเทียบตางจาก equals() กลาวคือ equals() จะเปรียบเทยี บเพยี งวา ถามคี าเทากันทกุ ตัวอักษร จึงจะเปน true แตถามีตัวใดตวั หน่ึงตางกนั แมเ พียงตวั เดยี ว กจ็ ะใหผลลพั ธ เปน false ทันที แตสำหรับ compareTo() จะเปรียบเทียบทีละตัวอักษร จากรหัส ascii และคืนคา กลบั มาเปน 3 คาคอื _________________________________________________________________________ เรยี บเรียงโดย: อาจารยภ รู ิวัฒน เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจดั การ
Search
Read the Text Version
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228