หัวข้อที่.5

การสร้าง Array


dataType = ชนิดข้อมูลของตัวแปรอะเรย์ เช่น int ,double เป็นต้น
arrayName = ชื่อของตัวแปรอะเรย์
เช่น int [ ] myList = new int [10]
double name[ ] = new double [5]
จะมีการประกาศได้ 2 แบบนะครับจะใช้แบบไหนก็ได้สังเกตดูว่าจะแตกต่างกันนิดเดียวครับ จากตัวอย่างตัวแปรชื่อ myList เป็นตัวแปรอะเรย์ชนิด int มีขนาด 10 ส่วนตัวแปรชื่อ name นั้นก็มีชนิดเป็น double มีขนาดเป็น 5 เครื่องหมาย [ ] นั้นจะเป็น index เพื่อใช้บอกตำแหน่งของตัวอะเรย์นั้นๆ ซึ่งจะเริ่มต้นที่ 0 เสมอ เช่น จากตัวอย่างตัวแปร name ถูกกำหนดขนาดไว้ 5 พื้นที่ที่ถูกจองก็จะเป็นดังรูป

ในกรณีที่เราต้องการระบุค่าเริ่มต้นให้กับตัวแปรชนิดอะเรย์เลยนั้นเราก็สามารถทำได้ทันทีจากตัวอย่าง ต่อไปนี้


อธิบายโปรแกรม จากโปรแกรมจะเป็นตัวอย่างง่ายๆ นะครับคือ มีการประกาศตัวแปร x เป็นอะเรย์โดยมีการระบุค่าเริ่มต้นใน { } ไว้ 5 จำนวน ในกรณีนี้ตัวเลขเหล่านี้นจะถูกจัด เก็บในอะเรย์โดยอัตโนมัติซึ่งในบรรทัดที่ 8 จะให้แสดงค่าที่ตำแหน่งอะเรย์ x[1] ออกมา ซึ่งค่าที่ได้คือ 2 นั่นเอง
สรุป
1.ประกาศตัวแปรอะเรย์แบบไม่กำหนดค่าเริ่มต้นทำได้ดังนี้
int [ ] myList = new int [10] ;
2. ประกาศตัวแปรอะเรย์แบบกำหนดค่าเริ่มต้นทำได้ดังนี้
int [ ] myList = {4,2,3};
Array 2 มิติ
เราสามารถสร้าง Array ได้มากกว่า 1 มิติ โดยผมจะยกตัวอย่างเรื่องของเมทตริกซ์(Matrix) ในทางคณิตศาสตร์นะครับ ใครเคยเรียนมาก็คงจะนึกภาพออกนะครับ การสร้าง อะเรย์ 2 มิติ นั้นสามารถทำได้ดังนี้

  int [][] matrix = new int [5][5]
                                                        หรือ int matrix [][] = new int [5][5]


  
                        
โดยตำแหน่งแรกจะหมายถึง แถว ตำแหน่งที่สองจะหมายถึง คอลัมน์ ซึ่งตำแหน่งเริ่มต้นของอะเรย์ 2 มิตินั้นก็จะเริ่มต้นที่ index [0][0] เช่นกันนะครับ เช่น matrix [1][5] จะหมายถึง ค่าของตัวแปร matrix ในแถวที่ 1 คอลัมน์ที่ 5 เป็นต้น


คำสั่ง do while มีรูปแบบดังนี้





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




อธิบายโปรแกรม จากโค้ดตัวอย่างนี้จะทำให้เห็นว่าเหตุการณ์ในลักษณะแบบนี้จะต้องใช้ do while เข้ามาช่วยเนื่องจากจะมีการรับค่าตัวเลขจากผู้ใช้งานก่อนแล้วจึงไป ตรวจสอบค่าต่อไปซึ่งถ้าค่าที่ผู้ใช้กรอกมาเป็น 0 จทำให้สิ้นสุดการทำงานของลูปทันที ลองนึกภาพถ้าเขียนโดยใช้คำสั่ง while อย่างเดียวนั้นจะทำให้ไม่สามารถรับค่าตัวเลข มาก่อนได้เพราะคำสั่ง while จะมีการเช็คค่าก่อนเข้าลูปนั่นเอง
ผมคิดว่าคำสั่งในบทความนี้ก็ยังถือว่ายังไม่ยากเกินไปนะครับสำหรับผู้เริ่มต้น พยายามลองฝึกฝนเขียนดูนะครับ บทความหน้าก็จะเป็นคำสั่งในการวนลูปที่เป็นคำสั่งสุดท้าย แล้วนะครับ จะเป็นคำสั่งอะไรนั้นให้ติดตามไปดูได้ครับ...

คำสั่ง for มีรูปแบบดังนี้


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





อธิบายโปรแกรม จากโค้ดโปรแกรมนี้จะเป็นการคำนวณหาค่าผลบวกของ 1 ถึง 10 (1+2+3+4+5+6+7+8+9+10) ซึ่งใช้ลูป for นะครับโดยมีการกำหนดตัวแปร i ไว ้เป็น 1 เมื่อเริ่มเข้ามาที่ลูป ส่วนเงื่อนไขคือ i <= 10 คือ เราต้องการให้ลูปนี้วนไป 10 ครั้ง ส่วน i++ เป็นการเพิ่มค่า i ทีละ 1 เมื่อจบรอบการทำงานในแต่ละรอบนั่นเอง ลองไล่ โค้ดดูนะครับ
i = 1, sum = 0 + 1 จบรอบแรก sum = 1
i = 2, sum = 1 + 2 จบรอบที่สอง sum = 3
i = 3, sum = 3 + 3 จบรอบที่สาม sum = 6
i = 4, sum = 6 + 4 จบรอบที่สี่ sum = 10
i = 5, sum = 10 + 5 จบรอบที่ห้า sum = 15
i = 6, sum = 15 + 6 จบรอบที่หก sum = 21
i = 7, sum = 21 + 7 จบรอบที่เจ็ด sum = 28
i = 8, sum = 28 + 8 จบรอบที่แปด sum = 36
i = 9, sum = 36 + 9 จบรอบที่เก้า sum = 45
i = 10, sum = 45 + 10 จบรอบที่สิบ sum = 55
จะเห็นว่าในรอบสุดท้ายคือ รอบที่สิบนั้นค่า i++ ยังคงทำงานอยู่คือ จะได้ค่า i ค่าสุดท้ายเป็น 11 แต่พอนำไปเช็คที่เงื่อนไขแล้วทำให้เงื่อนไขนั้นผิดเพราะ i <= 10 นั่นเองจึง ทำให้ออกจากลูป นอกจากนี้ยังมีการใช้งานในรูปแบบอื่นอีกซึ่งผมจะยกมาเป็นกฏให้ดูกันนะครับ
กฎการใช้คำสั่ง for
1. ค่าที่เพิ่มขึ้นในแต่ละรอบของตัวแปรควบคุมนั้นจะเป็นเท่าไรก็ได้ เช่น
for(int x=0 ; x<=100 ; x=x+5)
2. ค่าของตัวแปรควบคุมอาจถูกกำหนดให้ลดลงก็ได้ เช่น
for(int x=100 ; x>0 ; x- -)
3. ตัวแปรควบคุมอาจเป็นชนิด character ได้ เช่น
for(char ch =’a’ ; ch<=’z’ ; ch++)
4. ตัวแปรควบคุมสามารถมีได้มากกว่า 1 ตัวแปร เช่น
for(int x=0,y=0 ; x+y<100 ; x++,y++)

5 . ถ้ามีการละบางส่วนหรือทุกส่วนของพารามิเตอร์ในวงเล็บจะเป็นการสั่งให้ for ทำงานไม่รู้จบ เช่น
for( ; ; )
System.out.println(“ Hello”);
6. ในคำสั่ง for สามารถมีคำสั่ง for ซ้อนอยู่ภายในได้อีก เช่น
for(int x=1 ; x<=3 ; x++)
{
System.out.println(“ x = ”+x);
for(int y=1 ; x<=5 ; y++)
System.out.println(“ y = ”+y);
}
เป็นอย่างไรกันบ้างครับกฏการใช้งานทั้ง 6 ข้อซึ่งจะทำให้เรานำไปใช้งานในรูปแบบอื่นได้อีก ผมแนะนำว่าท่านที่ยังไม่คุ้นเคยก็ให้ฝึกฝนเขียนกันเลยนะครับจะได้รู้ผิดรู้ถูกและ เป็นการเพิ่มทักษะให้กับตัวเองด้วยนะครับ สำหรับคำสั่งในการวนลูปก็คงจะมีเพียงเท่านี้แหละครับที่ใช้งานกันบ่อยๆ ก่อนที่จะจบบทความผมมีแบบทดสอบให้มาทำกันเล่นๆ นะครับให้ลองดูภาพต่อไปนี้ครับ


ในสามรูปนี้ให้เราลองเขียนโปรแกรมโดยใช้เครื่องหมาย * พิมพ์ออกมาเป็นรูปตามแบบ โดยมีข้อกำหนดว่าให้ใช้เครื่องหมาย * ได้แค่ดวงเดียวในโปรแกรม นะครับ ห้ามลักไก่ใช้ System.out.println(“ * * * * * ”); ออกมาแบบนี้นะครับ ใช้ได้แค่ดวงเดียวเท่านั้น แล้วให้มันพิมพ์ออกมาเป็นรูปดังกล่าวรูปใดรูปหนึ่ง




อ้างอิงมาจาก :  http://www.webthaidd.com/java/webthaidd_article_250_.html
                          http://www.webthaidd.com/java/webthaidd_article_249_.html

                                         

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

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