SlideShare a Scribd company logo
1 of 29
Download to read offline
สวัสดีครับ สําหรับบทความนีผมจะมาเสนอเรื องของการใช้งาน Java Script เรามาเริ มกันเลยนะครับ
          การใช้งาน Java Script นัน คุณจะต้องใส่คาสังภาษา Java Script เหล่านันลงไปในระหว่างคําสัง <SCRIPT> และ
                                                 ํ
                                                                           ่
</SCRIPT> ซึงเป็ นคําสังภาษา HTML ทีใช้ในการแนบสคริ ปต์ภาษาต่างๆ ไม่วาจะเป็ น ภาษา Java Script, VB Script เป็ น
ต้น โดยในการระบุชือของภาษาทีใช้นน จะกําหนดผ่านแอตทริ บิวต์ LANGUAGE เช่น
                                     ั
<SCRIPT LANGUAGE="javascript">
โค้ดคําสัง ภาษา Java Script
....
</SCRIPT>
นอกจากนีคุณยังสามารถกําหนดเวอร์ชนของ Java Script ลงไปได้อีกด้วย เพือให้ บราว์เซอร์ทราบว่าคุณใช้คาสัง Java
                                       ั                                                            ํ
Script เวอร์ชนอะไร เช่น
             ั

<SCRIPT LANGUAGE="javascript1.1">
หรื อ
<SCRIPT LANGUAGE="javascript1.3">
ในกรณี ทีบราว์เซอร์ของผูชม ไม่สนับสนุน หรื อปิ ดการใช้งาน(Disable) Java Script จะทําให้บราว์เซอร์เข้าใจว่าคําสังทีอยู่
                        ้
ภายในคําสัง <SCRIPT> และ </SCRIPT> เป็ นคําสังภาษา HTML
ดังนันคุณควรจะใส่ หมายเหตุ (Comment) ของภาษา HTML ลงไประหว่างคําสังภาษา Java Script เพือให้ Browser ทีไม่
สนับสนุน Java Script แสดงผลได้ถูกต้อง ดังนี

<SCRIPT LANGUAGE="javascript">
<!--
โค้ดคําสัง ภาษา Java Script
....
-->
</SCRIPT>
และสําหรับ Browser ทีไม่สนับสนุน Java Script นันคุณสามารถทีจะใส่โค้ด HTML ธรรมดาแทนได้ โดยการใช้คาสัง
                                                                                                 ํ
<NOSCRIPT></NOSCRIPT> ดังนี
<SCRIPT LANGUAGE="javascript">
<!--
โค้ดคําสัง ภาษา Java Script
....
-->
</SCRIPT>
<NOSCRIPT>
โค้ดคําสัง ภาษา HTML ธรรมดา ในกรณี ทีได้สามารถแสดงผล Java Script ได้
....
</NOSCRIPT>
เนืองจากภาษา Java Script นัน เป็ นภาษาแบบสคริ ปต์ทีสามารถใส่ลงไปในส่วนใดๆของ ไฟล์ HTML ก็ได้
แต่โดยปกติ มักจะนิยมใส่ไว้ระหว่างคําสัง <HEAD> ... </HEAD> เพือทีคําสังเหล่านีจะได้ถูกเรี ยกขึนมาก่อนเว็บเพจ เช่น
<HEAD>
<script language="javascript">
คําสังภาษา Java Script
...
</script>
</HEAD>
หรื อคุณสามารถใช้คาสังภาษา Java Script แทรกลงไปใน HTML TAG ผ่านทาง Event ทีสนับสนุน TAG นันๆ เช่น
                     ํ
<IMG SRC="ชือไฟล์รูปภาพ.gif" OnMouseOver="คําสัง Java Script;">
นอกจากนีคุณยังสามารถทีจะนําเอาโค้ด Java Script ทีคุณเขียนขึนทังหมด (ตังแต่คาสัง <script> ...ถึง </script> ) ไปสร้าง
                                                                              ํ
เป็ นไฟล์ใหม่ แล้วบันทึกเป็ นนามสกุล .js จากนันจึงใช้คาสังผนวกไฟล์ .js นันขึนมาใช้งาน โดยใช้คาสัง
                                                      ํ                                       ํ
<SCRIPT LANGUAGE="javascript1.1" SRC="ชือไฟล์.js"></SCRIPT>
ซึงการใช้วธีผนวกไฟล์นี ทําให้คุณสามารถนําเอาโค้ด Java Script นีไปใช้งานในเว็บเพจต่างๆได้ โดยทีไม่ตองทําการเขียน
           ิ                                                                                          ้
ใหม่ทุกๆครัง


รู ปแบบการใช้ คาสั ง
               ํ
สําหรับโคร้งสร้างคําสังภาษา Java Script นัน จะมีรูปทีขึนต้นด้วย คําสัง หรื อนิพจน์ต่างๆ จากนันต้องตามด้วยเครื องหมาย ;
เพือบอกให้ทราบว่าจบคําสังแล้ว เช่น
document.write("Webthaidd");
alert("Webthaidd");
เนืองจากภาษา Java Script นันจะใช้เครื องหมาย ; เพือแยกแต่ละคําสังออกจากกัน ดังนันคุณสามารถทีจะเขียนคําสังต่างๆ
ให้ต่อกันโดยไม่จาเป็ นต้องขึนบรรทัดใหม่ก็ได้ เช่น
                   ํ
document.write("Hello Word"); alert("Hello Word");
เครื องหมาย ( )
                              ั
สําหรับเครื องหมายนีจะใช้กบ Propreties, Method หรื อ นิพจน์และคําสังต่างๆ เช่น
document.write("Webthaidd");
alert("Webthaidd");
Test = (Answer = 10) ? "correct" : "Wrong"
เครื องหมาย { }
สําหรับเครื องหมายนี ใช้ในการเริ มต้น และสิ นสุดคําสัง และ ฟังก์ชนต่างๆ เช่น
                                                                 ั
if (Test = "correct") {alert(Correct Answer");}
function Test1() {
document.write("Webthaidd");
}
การใส่หมายเหตุ
โดยปกติเมือเราเขียนคําสังต่างๆลงไป เราอาจจําเป็ นจะต้องเขียนหมายเหตุต่างๆ กํากับไว้ เพืออธิบายว่าโปรแกรมหรื อคําสัง
นัน ใช้ทาอะไร หรื ออาจจะหมายเหตุไว้ เพือข้ามการทํางาน ในส่วนทียังไม่ตองการให้ทางาน เอาไว้ก่อน ในขณะทีทดสอบ
            ํ                                                          ้         ํ
โปรแกรมอยู่
ซึงวิธีการใช้ หมายเหตุ นันจะใช้เครื องหมาย /* แล้วตามด้วยข้อความหมายเหตุ และปิ ดหมายเหตุดวยคําสัง */ เช่น
                                                                                             ้
alert("test"); /* Make Dialog Box*/
หากคุณต้องการหมายเหตุหลายๆบรรทัด ก็สามารถทําได้โดยไม่ตองใส่ /* */ ทุกบรรทัด แต่ใส่เฉพาะบบรทัดแรก และ
                                                              ้
บรรทัด สุดท้าย เช่น
function Test1() {
/* ฟังก์ชนนี
          ั
ใช้สาหรับตรวจเช็คข้อมูลก่อนส่ง ฟอร์ม
     ํ
เขียนเมือวันที 15/11/01 */
คําสังภาษา Java Script ...
....
}

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




จากคลาส MyClass จะมีสมาชิกทีเป็ นตัวแปรอยู่ 2 ตัว คือ n และ x โดยตัวแปร n จะถูกประกาศเป็ น static และมี Method 1
ตัวชือ getX() ผมจะสร้าง instance ขึนมา 2 ตัวจากคําสัง
MyClass a = new MyClass();
MyClass b = new MyClass();
เมือสร้าง instance แล้วจะเกิดเหตุการณ์คือ ตัวแปร x นันถูกสร้างขึนมาคนละ 1 ตัวใน instance ของทังสอง(ของใครของ
                                  ่
มัน) เวลาเรี ยกใช้ x ทังสองก็จะอยูคนละส่วนกัน(เพราะเป็ นคนละ instance) แต่ตวแปร n จะไม่เป็ นในลักษณะดังกล่าว
                                                                              ั
เนืองจากเป็ น static ซึงจะถูกสร้างบนพืนทีของคลาสเท่านันและมีเพียงก๊อปปี เดียว ดังนันเวลาที instance ทังสองเรี ยกใช้ตวั
แปร n ก็จะมีการ reference ไปทีพืนทีของ MyClass เพือเรี ยกใช้ตวแปร n มาใช้งานซึงจะมองเป็ นตัวแปรตัวเดียวกันนันเอง
                                                              ั
เราอาจจะเรี ยกตัวแปร n อีกอย่างว่า "Class Variable" และเราสามารถเรี ยกใช้ตวแปร n ภายนอกคลาสได้โดยใช้ชือคลาส
                                                                            ั
เรี ยก เช่น MyClass.n โดยไม่ตองผ่าน instance เลย
                              ้
                    ่
ส่วน Method ทีอยูในคลาสจะถูกเก็บไว้ภายในพืนทีของคลาสนันๆ เลยและใช้การ reference ไปที Method เหล่านันเมือ
                                                                                   ั
ต้องการใช้งาน เหตุทีเป็ นเช่นนีเพราะจะเป็ นการประหยัดพืนทีของหน่วยความจําให้กบโปรแกรมนันเอง ซึงพืนทีทีใช้เก็บ
Method นันจะถูกสร้างขึนมาเพียงครังเดียวเท่านันตอนทีเราประกาศคลาส(ในตัวอย่างคือ MyClass) และเมือสร้าง instance
                                             ั
ขึนมาก็ไม่จาเป็ นต้องสร้าง Method ขึนมาให้กบ instance ซําอีกเพียงแต่เก็บค่า reference ทีจะไปเรี ยกใช้งาน Method มาก็
             ํ
พอแล้ว จะมีการสร้างแค่ตวแปรทีไม่ได้กาหนดเป็ น static เท่านัน(ใ◌◌้นตัวอย่างคือ x) เพราะตัวแปรเหล่านีอาจจะเก็บค่า
                           ั            ํ                         ี
                      ่
ไม่เหมือน กันขึนอยูแต่ละ instance
ความหมายของ static เมือวางอยู่หน้ า Method
static เมือนําไปวางไว้หน้า Method ใดๆ จะทําให้สามารถเรี ยกใช้ Method นันภายในคลาสได้โดยไม่ตองใช้ instance เรี ยก
                                                                                                   ้
เลย ผมขอยกตัวอย่างเก่ามาแสดงให้เห็นนะครับ




จากรู ปเราจะเห็นว่ามีการเรี ยกใช้ printCircle ในคลาส TestPass1 โดยไม่ตองผ่าน instance เลยเนืองจาก printCircle ถูก
                                                                      ้
กําหนดเป็ น static

                                                                                              ั
             ในบทความนีผมขอเสนอเรื องราวทีเป็ นส่วนทีลึกลงไปอีกนิดเกียวกับคําศัพท์บางตัวทีใช้กนในภาษา Java นะ
ครับ คําว่า instance ครับ บางครังเราอาจจะพบเห็นในหนังสื อบางเล่มแล้วเกิดข้อสงสัยครับว่ามันหมายความว่าอย่างไรเห็น
เรี ยกว่า instance เนียเรามาดูกนซิครับว่ามันมีึความหมายอย่างไรกันแน่
                               ั
คําว่า instance นันในความรู ้สึกของผมเองมันก็เหมือนกับทีเราเรี ยกว่า object นันแหละครับ ตังแต่บทความแรกๆ หรื อ
บทความทีผ่านมาผมได้ให้คานิยามของประโยคต่อไปนีว่าการประกาศ object (ถ้าติดตามบทความตังแต่ตนๆ)
                            ํ                                                                       ้
Circle myCircle = new Circle();
myCircle คือ object ของคลาส Circle แล้วผมบอกว่า new Circle() คือคําสังทีใช้สร้าง object โดยโหลด Constructor
Circle() ของคลาส Circle เข้ามาใน object ด้วย นีคือในส่วนทีผมได้กล่าวไว้ ทีนีลองมาดูการนิยามแบบ instance บ้างนะ
ครับ
                                   ่
           เราสามารถกล่าวใหม่ได้วา myCircle คือ instance ของคลาส Circle โดย instance นีจะเป็ นตัวเก็บโครงสร้างของ
                  ่
คลาสใดๆ ไว้ไม่วาจะเป็ นตัวแปรในคลาสหรื อ Method ต่างๆ ซึง instance เหล่านีจะไปจองพืนทีในหน่อยความจําไว้เพือ
เก็บโครงสรัางดังกล่าว
ลองมาตัวอย่างอีกแบบหนึงครับ ผมให้มีคลาสหนึงชือ Employee




จากคลาสดังกล่าวผมจะทําการสร้าง instance ขึนมาหนึงตัวชือ p สามารถทําได้ดงนี
                                                                       ั
Employee p = new Employee();
ทําให้เราได้ p เป็ น instance ของคลาสนีดังภาพ




จากรู ปเราจะเห็นว่า instance ก็เปรี ยบเหมือนกล่องใบหนึงโดยภายในนันจะมี value เป็ นพืนทีทีใช้เก็บตัวแปรและ Method
ต่างๆ ของคลาสและจะมี address เป็ นตัวชีไปยัง value ทําหน้าทีคล้าย pointer แต่ในภาษา Java จะไม่เรี ยก pointer จะ
เรี ยก reference แทน ส่วน p จะเป็ นชือของ reference ทีจะใช้ในการอ้างถึงตัวแปรและ Method ต่างๆ ภายในคลาสนันเอง
สรุปได้ ว่า
ประโยค Employee p เป็ นการประกาศว่า p เป็ น reference ของคลาส Employee
ประโยค new Employee() เป็ นการสร้าง instance ของคลาส Employee
ถ้าเราประกาศ Employee p ; เฉยๆ จะทําให้ได้ p เป็ น reference แต่ไม่มีหน่วยความจําทีเก็บค่าของ instance
ถ้าเราประโยค new Employee() ; เฉยๆ จะทําให้เราได้หน่วยความจําทีเก็บค่าของ instance แต่จะไม่มี reference ซึงเรา
สามารถประกาศแยกกันได้ดงนี       ั
Employee p ;
p = new Employee() ;
การประกาศลักษณะนีก็จะหมายความว่า เราได้ประกาศ p เป็ น reference ก่อน จากนันบรรทัดที 2 จึงสร้าง instance ขึน
                           ั
มาแล้วไปกําหนดค่าให้กบ p เราจะได้ p เป็ น reference ของ instance นีทันที
                                                           ่
การใช้งานของ p นันคือ เราจะใช้อางถึงสมาชิกต่างๆ ทีอยูใน instance นันโดยใช้เครื องหมาย dot(.) มาเชือม เช่น p.id หรื อ
                                      ้
p.getName() เป็ นต้น
                                                    ่ ั
ส่วนในการอ้างถึงสมาชิกใน instance นันก็ขึนอยูกบการกําหนด modifiers ของสมาชิกด้วย (modifiers คือ public ,private
และ protected) ตัวอย่างเช่น ในคลาส Employee มีสมาชิกชือ id เป็ น public เราสามารถใช้ p (p.id)อ้างถึงได้จากภายนอก
คลาส Employee แต่ถานํา p มาอ้างถึงตัวแปร name กับ salary จะไม่สามารถทําได้เนืองจากมี modifiers เป็ น private ซึง
                        ้
สามารถใช้ได้ภายในคลาส Employee เท่านันจะมาอ้างนอกคลาสไม่ได้เลย จากข้อสังเกตดังกล่าวจะเห็นว่า ตัวแปร name
กับ salary เป็ น private วิธีทีจะทําให้เรี ยกใช้ตวแปรนีจากนอกคลาสได้ก็คือ ต้องสร้าง Method ทีใช้ในการอ่านค่าและเขียน
                                                 ั
ค่า ในทีนีก็คือ
public void setName(String n) { name = n ; } (Method นีใช้เขียนค่า name)
public String getName( ) { return name ; } (Method นีใช้อ่านค่า name)
public void setSalary(double s) { salary = s ; } (Method นีใช้เขียนค่า salary)
public double getSalary( ) { return salary ; } (Method นีใช้อ่านค่า salary)
ทีทําเช่นนีก็เพราะว่าเราต้องการป้ องการตัวแปร name กับ salary 2 ตัวนีไว้ให้ใช้ได้เฉพาะทีนันเองเพือความปลอดภัยของตัว
แปร วิธีเรี ยกใช้งานสามารถทําได้ดงนี    ั
Employee p = new Employee();
p.id = 12345 ;
p.setName("ramet") ;
p.setSalary(6000);
system.out.println(p.id+" , "+p.getName()+" , "+p.getSalary()) ;
สําหรับบทความนีอาจจะดูเนือหาหนักไปหน่อยนะครับ ก็เขียนขึนมาเพือให้พวกเรามีความรู ้ทีลึกลงไปอีกซักนิดกับ Java
ลองพยายามทําความเข้าใจกันดูซกนิดนะครับ เพราะกว่าทีผมจะเข้าใจความหมายของมันได้นีก็เล่นเอาแทบแย่ไปเหมือนกัน
                                    ั
สําหรับบทความนีก็คงเอาไว้แค่นีนะครับ สวัสดีครับ...
คําสัง break และ continue มีรูปแบบดังนี
break ถ้าโปรแกรมพบคําสังนี จะทําหลุดออกจากลูปการทํางานทันที
continue ถ้าโปรแกรมพบคําสังนี จะทําให้หยุดการทํางานทีจุดนัน แล้วย้อนกลับไปทํางานทีต้นลูปใหม่
จากแผนภาพจะเห็นเส้นประนันหมายถึงกรณี ทีในระหว่างการวนลูปนันมีคาสัง break คันขึนมาก็จะทําให้โปรแกรมวิงออก
                                                                       ํ
จากลูปทันทีหรื อถ้ามีคาสัง continue ก็จะหยุด การทํางานทีจุดนันแล้วย้อนกลับไปทํางานใหม่ทีต้นลูป ให้ลองดูตาม
                      ํ
เส้นประนะครับ เสร็ จแล้วลองมาดูตวอย่างจริ งกันเลยครับ
                                   ั
อธิบายโปรแกรม จากโปรแกรมนีนะครับจะเห็นว่าเงือนไขที while นันจงใจให้มีการวนลูปแบบไม่รู้จบเพราะ 1 <
2 เสมอและเป็ นจริ ง ดังนันลูป while จะไม่มีการหยุด การทํางานได้เลย พอเข้ามาในลูปจะมีการนําค่า num มาบวกเพิมทีละ
                                                                                       ็
1 ต่อการวนลูป 1 รอบ แล้วไปเช็คที if โดยจะแบ่งเป็ น 2 ส่วน คือ ถ้า num = 10 เมือไหร่ กจะพิมพ์คา ว่า End พร้อมกับมาเจอ
                                                                                                ํ
คําสัง break ทีจุดนีก็จะทําให้ออกจากลูปได้ แต่ถาค่า num ยังไม่ถึง 10 ก็จะเข้าไปในเงือนไข if อีกตัวนึงคือ ให้พิมพ์ค่า
                                               ้
Number = ออกมาและ มาเจอคําสัง continue ทีจุดนีทําให้มีการย้อนกลับไปทีต้นลูป while ทันที โดยจะทําเช่นนีไปเรื อยๆ
จนค่า num เป็ น 10 ก็จะไป break โปรแกรมออกไปเลยจะไม่มีการ กระทําบรรทัดที 19 เลยนะครับลองสังเกตดู
คําสังประเภทนีมีไว้ใช้ร่วมกันกับคําสังวนลูปเท่านันนะครับจะไปใช้นอกลูปไม่ได้ไม่งนคอมไพล์ไม่ผานแน่ ถ้าถามว่าแล้ว
                                                                                     ั              ่
                                 ่                                ่
จะใช้ตอนไหนผมคงตอบได้แค่วาแล้วแต่สถานการณ์ ทีท่านเจออยูแหละครับ สําหรับบทความนีผมขอจบเพียงเท่านีนะครับ
คําสั ง do while มีรูปแบบดังนี




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




จากรู ปแบบของคําสังจะเห็นว่าจะมีลกษณะการเขียนคล้ายกับแบบ simple if แต่จะมีการเพิมเติมคําว่า else เข้าไปด้วย ซึง
                                     ั
การทํางานของคําสังแบบนีนันจะทําการตรวจ สอบเงือนไขที if ก่อนว่าเป็ นจริ งหรื อเท็จ โดยถ้าเป็ นจริ งจะไปทํางานใน
กลุ่มคําสังทีเรากําหนดไว้ใน if แต่ถาเป็ นเท็จก็จะไปทํางานในกลุมคําสังทีอยูในส่วนของ else ซึงจะ เป็ นเหมือนมีทางเลือก
                                   ้                          ่           ่
2 ทางนันเอง ลองมาดูแผนภาพของคําสังแบบ if...else กันนะครับ
ดูจากแผนภาพแล้วจะเห็นว่าเมือเงือนไขเป็ นจริ งจะวิงเข้ามาทําตามกลุ่มคําสังทีเรากําหนดไว้ในกลุ่มแรก แต่ถาเงือนไขเป็ น
                                                                                                      ้
เท็จก็จะวิงเข้ามาทีกลุ่มคําสังของ else ในกลุ่มที 2 จากนันจึงค่อยมาทําทีคําสังในส่วนถัดมาของโปรแกรมต่อไป ลองมาดู
ตัวอย่างทีเป็ นโปรแกรมกันเลยครับ




อธิบายโปรแกรม จากโปรแกรมใน main method จะประกาศตัวแปรไว้ 3 ตัวคือ x = 8 , y = 2 และตัวแปร z จากนันมาเจอ
คําสัง if โดยมีเงือไข ว่า x มากกว่าหรื อเท่ากับ y ถ้าเงือนไขเป็ นจริ งจะเข้ามาทําคําสังภายในส่วนของ if ทันที คือให้หาค่า
ของ x-y และแสดงผลออกมา แต่ถาเงือนไขเป็ นเท็จจะข้ามาทําส่วนของ else ของโปรแกรมคือ หาค่าของ x+y และแสดงผล
                                   ้
ออกมา เมือรันโปรแกรมนีแล้วจะได้ผลลัพธ์คือ z = 10 นะครับ ให้ลองเปลียนค่า x ให้นอยกว่าค่า y ดูนะครับ แล้วลองรัน
                                                                                          ้
โปรแกรมดูใหม่ครับว่า ผลออกมาจะเป็ นอย่างไร?
ต่อไปผมจะมาเฉลยสิ งทีผมเคยถามไว้ในบทความคราวทีแล้วนะครับ ลองย้อนไปดูนะครับว่าผมทิงคําถามไว้วาอย่างไร           ่
สําหรับคนทีรู ้แล้วก็อ่านผ่านไปได้เลยครับ สําหรับใคร ทียังไม่เคลียผมจะเฉลยให้ฟังว่า จากตัวอย่างทีผมให้ไปคิดนันจะ
เห็นว่าผมไม่ได้ใส่เครื องหมายปี กกาหลังจากทีใช้คาสัง if ในกรณีนีถ้าหากว่าเงือนไขของ if เป็ นจริ งนันมันจะ ทําคําสังทีอยู่
                                                      ํ
หลังจาก if เพียงแค่บรรทัดเดียวเท่านันครับ คือ z=x-y หลังจากนันก็จะทําคําสังในบรรทัดทีเหลือทังหมด เพราะมันจะมอง
                               ่                                                                          ่
ว่าบรรทัดทีเหลือนันไม่ได้อยูในส่วน ของเงือยไข if นันเอง ดังนันถ้าคุณลองรันโปรแกรมดูจะเห็นว่า ไม่วาเงือนไขจะจริ ง
หรื อเท็จนันจะแสดงค่า z = ออกมา 2 ค่าเสมอ เราจึงควรระวังการใช้งานในส่วนนีให้ดี ด้วยนะครับ ให้ใช้เครื องหมายปี กกา
ครอบคลุมให้ถูกทีถูกทางไม่งนโปรแกรมเราจะทํางานผิดพลาดอย่างแน่นอน
                          ั
สําหรับบทความนีผมคงขอจบเพียงเท่านีครับ ค่อยๆ เรี ยนรู ้ไปทีละนิดครับ ไม่มีอะไรยากเกินไปสําหรับคนทีใฝ่ รู ้ครับ ..
.
        สวัสดีครับ สําหรับบทความในตอนนีก็จะได้พบกับเนือหาของภาษา java กันนะครับ ซึงผมจะพูดถึงเรื อง
โครงสร้างของภาษา การสร้าง Class ,Method และสร้าง Object ขึนมาใช้งานนะครับ ให้ท่านพิจารณาโค้ดของโปรแกรม
ต่อไปนีนะครับ




โค้ดโปรแกรมจะเหมือนกับบทความตอนทีแล้ว ให้ท่านลองรันดูผลลัพธ์นะครับ จากนันให้ลองเขียนโค้ดโปรแกรมอีก
โปรแกรมตามรู ปข้างล่างครับ
เกียวกับการเซฟและตังชือไฟล์ อย่างทีผมเคยกล่าวไว้แล้วนะครับว่าเวลาทีเราเขียนโค้ดโปรแกรมเสร็ จแล้ว เราจะต้องทํา
                                                                                                  ่
การเซฟโดยให้ชือไฟล์มีชือเดียวกับชือ Class ทุกประการ เนืองจากตัวคอมไพเลอร์จะได้ทราบว่าคลาสใดอยูในไฟล์ใด
และจะเป็ นการสะดวกสําหรับผูเ้ ขียนเองด้วยในการแยกแยะคลาสต่างๆ เก็บไว้ ภาษาจาวามีความเข้มงวดในการใช้
ตัวอักษรเล็กและใหญ่ดวย เช่น คําว่า hello กับ Hello จะไม่เหมือนกัน ถ้าโปรแกรมหนึงมีหลายคลาสในการตังชือไฟล์นน
                     ้                                                                                       ั
ให้สงเกตว่าคลาสใดมี main อยูก็ให้เซฟไฟล์เป็ นชือเดียวกับคลาสนันๆ
     ั                      ่
่
จากโค้ดโปรแกรมที 2 เมือรันโปแกรมออกมาแล้วจะเห็นว่าได้วาผลลัพธ์เหมือนกัน ถามว่า 2 โปรแกรมนีมีขอแตกต่างกัน
                                                                                                   ้
อย่างไร ? บางคนว่าโปรแกรมแรกสันกว่าโปรแรกมที 2 ครับอันนีเป็ นลักษณะทางกายภาพทีเราเห็นได้ชดเจนทีสุด บางคน
                                                                                                ั
                                      ุ่
ว่าแล้วอย่างนีจะเขียนแบบที 2 ทําไมให้ยงยากใจ ยืดเยืออีกต่างหาก สรุ ปก็คือ จะเขียนแบบไหนก็ไม่ผิดหรอกครับ เพียงแต่
ว่าการเขียนโปรแกรมแบบวิธีที 2 จะเป็ นการแสดงให้เห็นถึงแนวคิดในการเขียนโปรแกรมแบบ OOP ครับ ซึงเป็ น
จุดประสงค์หลักของภาษานี ผมจะอธิบายโปรแกรมที 2 ทีละจุดเลยนะครับ มาลองดูกน         ั
1. บรรทัดที 1 คือ การนํา package เข้ามาใช้งานโดยจะต้องใช้คาสัง import แล้วอย่าลืมปิ ดท้ายด้วยเครื องหมาย ; นะครับมา
                                                                ํ
ดูความหมายของคําว่า package กันครับ
Java Class Library (Package)
Java มีลกษณะเช่นเดียวกับโปรแกรมภาษาระดับสูงอืนๆ คือ จะมี Class ย่อยทีเขียนขึนมาให้เรี ยกใช้ได้ทนที โดยไม่ตอง
        ั                                                                                               ั            ้
                                                                                                                   ่
เขียนเองให้เสี ยเวลา Class เหล่านีเรี ยกว่า Libraries แต่สาหรับใน Java จะถูกเรี ยกว่า Package ซึงใน Java เองก็มีอยูมากมาย
                                                          ํ
ให้เลือกใช้งานได้ต่างๆ กัน เช่น ช่วยสนับสนุนงานด้าน Input และ Output งานด้าน Graphic User Interface (GUI) การ
จัดการข้อความ การคํานวณทางคณิ ตศาสตร์ และอืนๆ package ในจาวามีเยอะครับผมขอยกตัวอย่างของ package บางส่วน
ขึนมาให้ดูเท่านันครับ
2. บรรทัดที 2 นีจะเป็ นการสร้าง Class ขึนมาชือ Hello2 ส่วนคําว่า public ข้างหน้าเป็ นขอบเขตของคลาสเราซึงมี
ความหมายดังนี
                                                                         ั
public ใช้นิยามตัวแปร ,Method และ Class ใดๆ เพือให้สามารถนําไปใช้กบ Class หรื อ โปรแกรมอืนๆ ได้
private ใช้นิยามตัวแปร หรื อ Method เพือให้เรี ยกใช้ได้เฉพาะภายใน Class ทีสร้างตัวแปร หรื อ Method นันๆ ขึนมา
เท่านัน
protected ใช้นิยามตัวแปร หรื อ Method ทีใช้ได้เฉพาะ Class ทีสร้างขึนมาด้วยวิธีการสื บทอด (Inheritance) เท่านันโดย
ปกติจะใช้ protected กับ Class ทีเป็ น Class ต้นฉบับ
static ใช้นิยามตัวแปรและ Method ทีต้องการให้มีค่าคงที สามารถนําไปใช้ได้กบทุกๆ ส่วนของ Class โดยค่านันจะไม่มี
                                                                             ั
                      ่
การเปลียนแปลงไม่วากรณี ใดๆ
                                                                           ั
void ใช้นิยาม Method โดยเป็ นการกําหนดให้ไม่มีการส่งค่าใดๆ กลับมาให้กบ Method นี (ดังนันจึงไม่ตองใช้คาสัง
                                                                                                   ้       ํ
return)
สําหรับใครทียังไม่ค่อยเข้าใจเรื องขอบเขตทัง 5 ตัวนีก็ไม่ตองตกใจนะครับ ดูความหมายไปพลางๆ ก่อนเมือถึงจุดหนึงท่าน
                                                         ้
จะเข้าใจไปเองครับ ในส่วนของการสร้างคลาสนีเมือตังชือคลาสแล้วให้ ตามด้วยเครื องหมาย { เมือจะเริ มเขียนส่วนอืนใน
คลาส เมือสร้างองค์ประกอบต่างภายในคลาสเสร็ จแล้วให้ปิดด้วยเครื องหมาย } นะครับ
3. ดูในส่วนที 1 ในกรอบสี เหลียมนะครับบรรทัดที 4-8 ส่วนนีเรี ยกว่า Method ครับ เป็ นวิธีการทีจะให้ Object มาเรี ยกใช้
                                                                                    ั
ผมให้ Method นีมีชือว่า Run ทําหน้าทีกําหนดค่าสติง (string) คําว่า "Hello Java" ให้กบตัวแปล S1 แล้วแสดงผลออกมา
เมือจบคําสังใดๆ แล้วอย่าลืมเครื องหมาย ; นะครับ
4. ส่วนที 2 บรรทัดที 9-13 เป็ นการสร้าง Method ชือว่า main ครับ เป็ นเมดธอทหลักทีจะต้องมีในโปรแกรมครับ เวลารัน
โปรแกรมจะมารันที main Method นีก่อนเสมอครับ เป็ นส่วนทีสําคัญทีสุดนะครับขาดไม่ได้ ภายในเมดธอทนีทํา
อะ◌ําไรบ้างมาดูกนครับ
                    ั
                                               Hello2 App = new Hello2( ) ;
ตรงนีดูให้ดีนะครับ จะเป็ นการสร้าง Object ชือว่า App ครับ โดยการเขียนชือคลาสก่อนแล้วตามด้วยชือ Object ชือ
อะ◌ําไรก็ได้ครับแต่ผมตังชือเป็ น App แล้วตามด้วย คําสัง new กับชือคลาสอีกทีแต่ชือคลาสหลัง new ให้ใส่ ( ) ไว้ดวยนะ
                                                                                                              ้
ครับ เพราะอะไรเหรอครับ ต้องติดตามต่อไปครับ สิ งทีผมยังไม่อธิบายในตอนนีมันจะไปเคลียเองในหัวข้อหรื อในบทถัดๆ
ไปครับ
                                                       App.Run( ) ;
จุดนีเป็ นการให้ Object ทีเราสร้างมาเรี ยกใช้เมดธอท Run มาทํางานแล้วครับ โดยเขียนชือ Object แล้วใช้เครื องหมาย dot
(.) เป็ นการอ้างถึง จากนันตามด้วยชือเมดธอททีเราต้องการเรี ยกใช้ครับ อย่าลืมนะครับ ทุกครังทีจบคําสังให้ตามด้วย ; ถ้า
เขียน Method หรื อ Class อย่าลืมเปิ ด { และปิ ด } ทุกครัง
เป็ นอย่างไรกันบ้างครับ พอจะมองเห็นแนวคิด แนวทางในการเขียนโปรแกรมขึนมาบ้างหรื อยังครับ จะเห็นว่าโปแกรมที
1 นันเขียนโดยมีเมดธอท main เพียงตัวเดียวก็ใช้งานได้แล้ว แต่โปรแกรมที 2 มีการสร้าง Object ทีเป็ นตัวแทนขึนมาเพือ
                         ่
เรี ยกใช้เมดธอทอืนๆ ทีอยูในคลาสได้ดวย ให้ลองนึกถึงบทความแรกทีผมยกตัวอย่างเรื อง คลาสการทําไข่เจียว ดูนะครับ
                                   ้
                                                                          ่
พอจะเปรี ยบเทียบให้เข้าใจขึนบ้างไหมครับ อีกจุดหนึงทีผมจะกล่าวถึงก็คือ ไม่วาจะเป็ นโปแกรมที 1 หรื อ 2 ภาษาจาวาก็
บังคับให้เราสร้างคลาสครับ ในโปรแกรมหนึงๆ ต้องมีคลาสอย่างน้อย 1 คลาสครับ ไม่มีไม่ได้ ตัวภาษาบังคับให้เราเขียน
                               ่
โปรแกรมแบบ OOP ไปในตัวอยูแล้วครับ
บทความนีผมเน้นเรื องโครงสร้างของภาษาและการสร้าง Class ,Method และ Object นะครับ คิดว่าคงจะทําให้หลายคน
เข้าใจหลักการได้ดีขึน ในบทต่อก็จะเพิมความเข้มข้นขึนเรื อยๆ นะครับ ติดตามกันต่อไป สําหรับบทความนีผมขอจบเพียง
เท่านีครับ ขอบคุณครับ.
   ่                                                                                                       ุ่
ก็ผานไปแล้วนะครับกับคําสัง if คราวนีเราจะมาขึนคําสังใหม่อีกคําสังนะครับ คือswicth ลักษณะการใช้คาสังนีก็ไม่ยงยาก
                                                                                                 ํ
อะไรเลยครับเป็ นการเช็ค ตัวแปรทีรับเข้ามาว่าตรงกับ case ไหนก็จะเข้าไปทําใน case นันๆ เราลองมาดูรูปแบบของคําสัง
นีกันเลยดีกว่าครับ

คําสัง switch มีรูปแบบดังนี




จากรู ปแบบของคําสังโปรแกรมจะตรวจสอบจากตัวแปรทีคําสัง switch (ตัวแปรในวงเล็บ)ว่ามีค่าเป็ นเท่าไรแล้วนํามา
ตรวจสอบกับคําสัง case ถ้าตรงกับค่าของ case ใดก็จะทํางานตาม คําสังใน case นัน เมือทํางานเสร็ จ จะพบคําสัง break มี
ผลทําให้ออกไปจากคําสัง switch ทันที ในกรณีทีไม่มีค่าใดตรงกับ case ทีระบุโปรแกรม จะมาทํางานทีคําสัง default โดย
อัตโนมัติ
ข้อกําหนดของการใช้คาสัง switch
                        ํ
◌ุ 1. ตัวแปรทีใช้ในการตรวจสอบ จะต้องมีชนิดเป็ นตัวเลขอย่างใดอย่างหนึง ได้แก่ char,byte,short หรื อ int และต้องอยู่
ภายในเครื องหมายวงเล็บ ( ) เท่านัน
◌ุ 2. ชนิดของตัวเลขทีใช้ในการตรวจสอบในคําสัง case จะต้องเป็ นชนิดเดียวกันทังหมด
◌ุ 3. อาจไม่ใส่คาสัง break ไว้ก็ได้ แต่ถาไม่ใส่ จะทําให้โปรแกรมต้องตรวจสอบทุกๆเงือนไขจนกว่าจะหมด ซึงอาจทําให้
                   ํ                      ้
เสี ยเวลาได้ ถ้าเงือนไขมีมากและซับซ้อน
◌ุ 4. คําสัง default อาจใส่หรื อไม่ก็ได้ ถ้าใส่ก็นิยมใส่ไว้ทีบรรทัดสุดท้ายของการตรวจสอบ
ลองมาดูตวอย่างทีเป็ นโปรแกรมกันเลยครับ
            ั
สมมติให้ธนาคารคิดดอกเบียตามระยะเวลาการกูโดยแบ่งเป็ น 3 กลุ่ม คือ
                                                    ้
กลุ่มที 1 ระยะเวลากู้ 5 ปี คิดดอกเบีย 12%
กลุ่มที 2 ระยะเวลากู้ 15 ปี คิดดอกเบีย 18%
กลุ่มที 3 ระยะเวลากู้ 30 ปี คิดดอกเบีย 24%
ํ
อธิบายโปรแกรม จากโปรแกรมเราจะแบ่ง case ออกเป็ น 3 case นะครับตามเงือนไขทีโจทย์กาหนดมา โดยเราจะรับค่า
year เข้ามาและเปลียนค่า year เป็ น int เพือให้ เช็คใน switch ถ้าค่าปี ทีรับมาตรงกับ case ใดก็จะแสดงผลอัตราดอกเบีย
ออกมา แต่ถาปี ทีเราเข้ามาไม่ตรงกับ case ใดเลยก็จะมาทําที default คือแสดงคําว่า Error ออกมา
            ้
คําสังในบทความนีคงไม่ยากเท่าไหร่ นะครับเพราะในภาษาอืนๆ ก็มีคาสังในลักษณะนีเช่นเดียวกันซึงถ้าใครเคยเขียน
                                                                        ํ
โปรแกรมมาบ้างแล้วก็คงจะคุนเคยกับคําสังเหล่านีได้ดี บทความหน้าก็จะเป็ นคําสังในการวนลูปนะครับ ติดตามต่อไป
                             ้
ครับ...
คําสั ง 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(“ * * * * * ”); ออกมาแบบนีนะครับ
ใช้ได้แค่ดวงเดียวเท่านัน แล้วให้มนพิมพ์ออกมาเป็ นรู ปดังกล่าวรู ปใดรู ปหนึงโปรแกรมละ 1 รู ป ลองทํากันเล่นๆ ดูนะครับ
                                  ั
ถือว่าเป็ นการฝึ กฝนการเขียนโปแกรมไปในตัว ถ้าใครอยากได้เฉลยก็ไปโพสต์บอกผมไว้ที webboard นะครับ ส่วนใน
บทความนีผมขอจบ เพียงแค่นีนะครับเจอกันบทความหน้าครับ
สวัสดีครับ สําหรับบทความนีเราจะมาคุยกันในเรื องของคําสังทีใช้ในการวนลูปหรื อทํางานซํานะครับ คําสังแรกทีผมจะ
แนะนําก็คือ คําสัง while ครับ ซึงจะมี วิธีการใช้งานดังต่อไปนีครับ
คําสั ง while มีรูปแบบดังนี




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




                                                                   ่
อธิบายโปรแกรม จากโปรแกรมทีเงือนไข while มีการกําหนดไว้วาค่าของ i ต้องไม่เกิน 10 ซึงเรากําหนดตัวแปร i ไว้ใน
ตอนต้นไว้เป็ น 1 เมือเข้ามาทีคําสัง while เงือนไข จึงเป็ นจริ ง จากนันก็จะแสดงค่า i ออกมาแล้วทําการบวกค่า i อีก 1 แล้ว
กลับไปเช็คเงือนไขอีก ทําเช่นนีไปเรื อยๆ จนค่า i บวกไปจนถึง 11 จะทําให้เงือนไขเป็ นเท็จจึงออกจาก ลูป while ได้
**ข้อควรระวังของการใช้งานคือ ต้องแน่ใจว่าเงือนไขทีเรากําหนดจะต้องมีจุดสิ นสุดด้วยก็คือเงือนไขทีจะทําให้เป็ นเท็จ ถ้า
ไม่มีจุดสิ นสุดจะทําให้ลูปวนแบบไม่รู้จบ
บทความหน้าก็จะเป็ นคําสังในการวนลูปอีกแบบนะครับ สําหรับคําสัง while นันก็ลองไปฝึ กใช้งานกันให้คล่องนะครับ เจอ
กันบทความหน้าครับ.
                                                                                                    ่
บทความนีผมจะมาแนะนําการ Java Script ทีทําให้ Status Bar มีขอความวิงครับคิดว่าหลายๆ คนคงอยากรู ้วาทํากันอย่างไร
                                                           ้
                       ั
ไม่ยากครับ มาลองดูกนเลยนะครับ
ขันตอนการทํา
1. สร้างไฟล์ demo.html เพือใช้ในการทดสอบ Script นะครับ แล้ว copy code ด้านล่างนี เอาไว้ที tag <head> นะครับ
<script language="JavaScript" type="text/javascript">
<!-- Beginning of JavaScript Code--------->
function scroll_status (seed)
{
var msg = "พิมพ์ขอความทีต้องการให้แสดงทีนีครับ";
                   ้
var out = " ";
var c = 1;
if (150 < seed) {
seed--;
var cmd="scroll_status(" + seed + ")";
timerTwo = window.setTimeout(cmd, 100);
}
else if (seed <= 150 && 0 < seed) {
for (c=0 ; c < seed ; c++) {
out+=" ";
}
out+=msg;
seed--;
var cmd="scroll_status(" + seed + ")";
window.status=out;
timerTwo=window.setTimeout(cmd,100);
}
else if (seed <= 0) {
if (-seed < msg.length) {
out+=msg.substring(-seed,msg.length);
seed--;
var cmd="scroll_status(" + seed + ")";
window.status=out;
timerTwo=window.setTimeout(cmd,100);
}
else {
window.status=" ";
timerTwo=window.setTimeout("scroll_status(150)",100);
}
}
}
// -- End of JavaScript code -------------- -->
</SCRIPT>
หลังจาก copy code มาวางไว้ที tag <head> แล้วนะครับ จะต้องเหมือนกับ code ด้านล่างนะครับ
<html>
<head>
<script language="JavaScript" type="text/javascript">
<!-- Beginning of JavaScript Code--------->
function scroll_status (seed)
{
var msg = "^_^ ข้อความทีต้องการให้แสดงทีนีครับ ขอให้สนุกกับการทํานะครับ^_^"; //ส่วนนีจะเป็ นข้อความทีคุณจะต้อง
ให้แสดงผลที Status Bar นะครับ
var out = " ";
var c = 1;
if (150 < seed) {
seed--;
var cmd="scroll_status(" + seed + ")";
timerTwo = window.setTimeout(cmd, 100);
}
else if (seed <= 150 && 0 < seed) {
for (c=0 ; c < seed ; c++) {
out+=" ";
}
out+=msg;
seed--;
var cmd="scroll_status(" + seed + ")";
window.status=out;
timerTwo=window.setTimeout(cmd,100);
}
else if (seed <= 0) {
if (-seed < msg.length) {
out+=msg.substring(-seed,msg.length);
seed--;
var cmd="scroll_status(" + seed + ")";
window.status=out;
timerTwo=window.setTimeout(cmd,100);
}
else {
window.status=" ";
timerTwo=window.setTimeout("scroll_status(150)",100);
}
}
}
// -- End of JavaScript code -------------- -->
</SCRIPT>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
<title>HV menu</title>
</head>
<body>
</body>
</html>
2. แล้ว Copy code นีเอาไปไว้ใน tag <body> นะครับ
onLoad="timerONE=window.setTimeout('scroll_status(100)',50);"
หลังจาก copy code มาวางไว้ใน tag <body> แล้วนะครับ จะต้องเหมือนกับ code ด้านล่างนะครับ
<body onLoad="timerONE=window.setTimeout('scroll_status(100)',50);">
3. นีครับตัวอย่างทีสมบูรณ์ครับ
<html>
<head>
<script language="JavaScript" type="text/javascript">
<!-- Beginning of JavaScript Code--------->
function scroll_status (seed)
{
var msg = "^_^ ข้อความทีต้องการให้แสดงทีนีครับ ขอให้สนุกกับการทํานะครับ^_^";
var out = " ";
var c = 1;
if (150 < seed) {
seed--;
var cmd="scroll_status(" + seed + ")";
timerTwo = window.setTimeout(cmd, 100);
}
else if (seed <= 150 && 0 < seed) {
for (c=0 ; c < seed ; c++) {
out+=" ";
}
out+=msg;
seed--;
var cmd="scroll_status(" + seed + ")";
window.status=out;
timerTwo=window.setTimeout(cmd,100);
}
else if (seed <= 0) {
if (-seed < msg.length) {
out+=msg.substring(-seed,msg.length);
seed--;
var cmd="scroll_status(" + seed + ")";
window.status=out;
timerTwo=window.setTimeout(cmd,100);
}
else {
window.status=" ";
timerTwo=window.setTimeout("scroll_status(150)",100);
}
}
}
// -- End of JavaScript code -------------- -->
</SCRIPT>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
<title>HV menu</title>
</head>
<body onLoad="timerONE=window.setTimeout('scroll_status(100)',50);">
</body>
</html>

การทําปฎิทนด้ วย Java Script
          ิ
หลายท่านคงอยากทีจะแต่งเว็บไซด์ดวย ปฎิทิน แต่ไม่รู้จะทําอย่างไรหรื อไม่รู้วธีทา วันนีผมเลยเอา Scriptนีมาฝากกันนะ
                                    ้                                      ิ ํ
ครับ
1. สร้างไฟล์ demo.html เพือใช้ในการทดสอบ Script นะครับ แล้ว copy code ด้านล่างนี เอาไว้ทีตําแหน่งทีเราต้องการจะให้
แสดงปฎิทินนะครับ
<script language=JavaScript>
<!-- Begin
var bg_color = "bgcolor=#dddddd";
var bg_color_head = "bgcolor=#444444"
var now = new Date();
var month_array = new Array("January" ,"February" ,"March" ,"April" ,"May" ,"June" ,"July" ,"August"
,"September" ,"October" ,"November" ,"December");
document.write("<form name=date_list><table "+ bg_color +"><tr style='font-family:MS Sans Serif;font-size:8pt;'>
<td style='font-family:MS Sans Serif;font-size:8pt;'>");
document.write("<select name=month onchange=change_month(this.options.selectedIndex)>");
for(i=0;i<month_array.length;i++) //ส่วนทีให้แสดงเดือน
{
if (now.getMonth() != i)
{document.write ("<option value="+i+">"+month_array[i]);}
else
{document.write ("<option value="+i+" selected>"+month_array[i]);}
}
document.write("</select>");
document.write("</td><td>");
document.write ("<select name=year onchange=change_year(this.options[this.options.selectedIndex])>");
for(i=1950;i<3000;i++) //ส่วนทีกําหนดให้แสดงปี พ.ศ.
{
if (now.getYear() != i)
{document.write("<option value="+i+">"+(i+543));}
else
{document.write("<option value="+i+" selected>"+(i+543));}
}
document.write("</select></td></tr><tr style='font-family:MS Sans Serif;font-size:8pt;'><td colspan=2><center>");
document.write("<table bgcolor=white border=0 cellspacing = 0 cellpading = 0 width=100%>
<tr style='font-family:MS Sans Serif;font-size:8pt;' "+ bg_color_head +" align=center>");
document.write("<td><font color=yellow>Mo</font></td><td><font color=pink>Tu</td>
<td><font color=#00ff66>We</td><td><font color=orange>Th</td><td><font color=#CCF2FF>Fr</td>
<td ><font color=violet>Sa</td>
<td ><font color=red>Su</td>");
document.write("</tr><tr style='font-family:MS Sans Serif;font-size:8pt;'>");
for(j=0;j<6;j++) //ส่วนทีให้แสดงวันที
{
for(i=0;i<7;i++)
{
document.write("<td style='font-family:MS Sans Serif;font-size:8pt;' align=center id=d"+i+"r"+j+"></td>")
}
document.write("</tr>");
}
document.write("</table>");
document.write("</center></from></td></tr></table>");
var show_date = new Date();
function set_cal(show_date)
{
begin_day = new Date (show_date.getYear(),show_date.getMonth(),1);
begin_day_date = begin_day.getDay();
end_day = new Date (show_date.getYear(),show_date.getMonth()+1,1);
count_day = (end_day - begin_day)/1000/60/60/24;
input_table(begin_day_date,count_day);
}
set_cal(show_date);
function input_table(begin,count)
{
init();
j=0;
if (begin!=0){i=begin-1;}else{i=6}
for (c=1;c<count+1;c++)
{
colum_name = eval("d"+i+"r"+j);
if ((now.getDate() == c)&&(show_date.getMonth() == now.getMonth())&&(show_date.getYear() == now.getYear())) {
colum_name.style.backgroundColor = "#ff3399";colum_name.style.color = "white";};
colum_name.innerText = c;
i++;
if (i==7){i=0;j++;}
}
}
function init()
{
for(j=0;j<6;j++)
{
for(i=0;i<7;i++)
{
colum_name = eval("d"+i+"r"+j);
colum_name.innerText = "-";
colum_name.style.backgroundColor ="";
colum_name.style.color ="";
}
}
}
function change_month(sel_month)
{
show_date = new Date(show_date.getYear(),sel_month,1);
set_cal(show_date);
}
function change_year(sel_year)
{
sel_year = sel_year.value;
show_date = new Date(sel_year,show_date.getMonth(),1);
set_cal(show_date);
}
// End -->
</script>
การทํา ให้ Button นับ ถอยหลัง

1. Copy Script ส่วนนีไว้ใน ส่วนของ Head
<script type="text/javascript">

function countdown(id){
i =id -1;//ให้ค่าลดลงทีละ 1
if(id > 1){
document.getElementById("bt_download").value ='Wait '+i+' Second..';
}else{
//เมือค่า i == 1
document.getElementById("bt_download").value ='Download Now';
document.getElementById("bt_download").disabled ='';
}
setTimeout("countdown("+i+")", 1000); //1000 = 1 วินาที
}
</script>
2.Copy Script นีไว้ที Body
<body onLoad="countdown('10')">
เพือเริ มนับถอยหลังจาก 10 ถึง 0
onLoad="countdown('10')" เมือเปิ ดหน้าเว็บ มาให้เรี ยกใช้ฟังก์ชน countdown();
                                                               ั
3.Copy Script นีไว้ใน Body
<form id="frm_download" name="frm_download" method="post" action="#">
<input name="bt_download" type="submit" id="button" value="Wait 10 Second.." disabled="disabled" />
</form>
4.ผลก็คือ

 Wait 10 Second..

More Related Content

Similar to Java

พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาAeew Autaporn
 
Java script เบื้องต้น
Java script เบื้องต้นJava script เบื้องต้น
Java script เบื้องต้นSamart Phetdee
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นParn Nichakorn
 
Java Programming [4/12] : Object Oriented Concept
Java Programming [4/12] : Object Oriented ConceptJava Programming [4/12] : Object Oriented Concept
Java Programming [4/12] : Object Oriented ConceptIMC Institute
 
Javacentrix com chap05-0
Javacentrix com chap05-0Javacentrix com chap05-0
Javacentrix com chap05-0Theeravaj Tum
 
คู่มือJavascript and Python
คู่มือJavascript and Pythonคู่มือJavascript and Python
คู่มือJavascript and PythonBongkotporn Jachernram
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นTua Tor
 
Javacentrix com chap08-0
Javacentrix com chap08-0Javacentrix com chap08-0
Javacentrix com chap08-0Theeravaj Tum
 
ตัวอย่างบทที่3โปรแกรม filter บน linux
ตัวอย่างบทที่3โปรแกรม filter บน linuxตัวอย่างบทที่3โปรแกรม filter บน linux
ตัวอย่างบทที่3โปรแกรม filter บน linuxrubtumproject.com
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาT'tle Tanwarat
 

Similar to Java (20)

Java 7&12 6 2
Java 7&12 6 2Java 7&12 6 2
Java 7&12 6 2
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
 
Java intro
Java introJava intro
Java intro
 
Java script เบื้องต้น
Java script เบื้องต้นJava script เบื้องต้น
Java script เบื้องต้น
 
Lab Computer Programming 1
Lab Computer Programming 1Lab Computer Programming 1
Lab Computer Programming 1
 
Know 1 1
Know 1 1Know 1 1
Know 1 1
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
 
Java Programming [4/12] : Object Oriented Concept
Java Programming [4/12] : Object Oriented ConceptJava Programming [4/12] : Object Oriented Concept
Java Programming [4/12] : Object Oriented Concept
 
Week2 lab1
Week2 lab1Week2 lab1
Week2 lab1
 
Javacentrix com chap05-0
Javacentrix com chap05-0Javacentrix com chap05-0
Javacentrix com chap05-0
 
คู่มือการใช้งานโปรแกรม CourseLab
คู่มือการใช้งานโปรแกรม CourseLabคู่มือการใช้งานโปรแกรม CourseLab
คู่มือการใช้งานโปรแกรม CourseLab
 
Chapter3
Chapter3Chapter3
Chapter3
 
66
6666
66
 
คู่มือJavascript and Python
คู่มือJavascript and Pythonคู่มือJavascript and Python
คู่มือJavascript and Python
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
 
Scripts 1
Scripts 1Scripts 1
Scripts 1
 
Ass1 1
Ass1 1Ass1 1
Ass1 1
 
Javacentrix com chap08-0
Javacentrix com chap08-0Javacentrix com chap08-0
Javacentrix com chap08-0
 
ตัวอย่างบทที่3โปรแกรม filter บน linux
ตัวอย่างบทที่3โปรแกรม filter บน linuxตัวอย่างบทที่3โปรแกรม filter บน linux
ตัวอย่างบทที่3โปรแกรม filter บน linux
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
 

More from พงศธร ภักดี

แผนการสอน โปรแกรมคอมพิวเตอร์กราฟิก ม.4
แผนการสอน โปรแกรมคอมพิวเตอร์กราฟิก ม.4แผนการสอน โปรแกรมคอมพิวเตอร์กราฟิก ม.4
แผนการสอน โปรแกรมคอมพิวเตอร์กราฟิก ม.4พงศธร ภักดี
 
แผนการสอน ระบบเครือข่าย ม.3
แผนการสอน ระบบเครือข่าย ม.3แผนการสอน ระบบเครือข่าย ม.3
แผนการสอน ระบบเครือข่าย ม.3พงศธร ภักดี
 
แผนการจัดการเรียนรู้ ส่วนประกอบคอมพิวเตอร์ ม.2
แผนการจัดการเรียนรู้ ส่วนประกอบคอมพิวเตอร์ ม.2แผนการจัดการเรียนรู้ ส่วนประกอบคอมพิวเตอร์ ม.2
แผนการจัดการเรียนรู้ ส่วนประกอบคอมพิวเตอร์ ม.2พงศธร ภักดี
 
แผนการสอน ระบบปฏิบัติการ Windows ม.1
แผนการสอน ระบบปฏิบัติการ Windows ม.1แผนการสอน ระบบปฏิบัติการ Windows ม.1
แผนการสอน ระบบปฏิบัติการ Windows ม.1พงศธร ภักดี
 
สร้างตัวหนังสือแตกๆ ด้วย Photoshop
สร้างตัวหนังสือแตกๆ ด้วย Photoshopสร้างตัวหนังสือแตกๆ ด้วย Photoshop
สร้างตัวหนังสือแตกๆ ด้วย Photoshopพงศธร ภักดี
 

More from พงศธร ภักดี (16)

วิชากราฟิก
วิชากราฟิกวิชากราฟิก
วิชากราฟิก
 
ภาษา C
ภาษา Cภาษา C
ภาษา C
 
Web
WebWeb
Web
 
Powerpoint
PowerpointPowerpoint
Powerpoint
 
Excel
ExcelExcel
Excel
 
คอมเบื้องต้น1web
คอมเบื้องต้น1webคอมเบื้องต้น1web
คอมเบื้องต้น1web
 
C
CC
C
 
แผนการสอน โปรแกรมคอมพิวเตอร์กราฟิก ม.4
แผนการสอน โปรแกรมคอมพิวเตอร์กราฟิก ม.4แผนการสอน โปรแกรมคอมพิวเตอร์กราฟิก ม.4
แผนการสอน โปรแกรมคอมพิวเตอร์กราฟิก ม.4
 
แผนการสอน ระบบเครือข่าย ม.3
แผนการสอน ระบบเครือข่าย ม.3แผนการสอน ระบบเครือข่าย ม.3
แผนการสอน ระบบเครือข่าย ม.3
 
แผนการจัดการเรียนรู้ ส่วนประกอบคอมพิวเตอร์ ม.2
แผนการจัดการเรียนรู้ ส่วนประกอบคอมพิวเตอร์ ม.2แผนการจัดการเรียนรู้ ส่วนประกอบคอมพิวเตอร์ ม.2
แผนการจัดการเรียนรู้ ส่วนประกอบคอมพิวเตอร์ ม.2
 
แผนการสอน ระบบปฏิบัติการ Windows ม.1
แผนการสอน ระบบปฏิบัติการ Windows ม.1แผนการสอน ระบบปฏิบัติการ Windows ม.1
แผนการสอน ระบบปฏิบัติการ Windows ม.1
 
Excel
ExcelExcel
Excel
 
Photoshop
PhotoshopPhotoshop
Photoshop
 
สร้างตัวหนังสือแตกๆ ด้วย Photoshop
สร้างตัวหนังสือแตกๆ ด้วย Photoshopสร้างตัวหนังสือแตกๆ ด้วย Photoshop
สร้างตัวหนังสือแตกๆ ด้วย Photoshop
 
คู่มือOpen office
คู่มือOpen officeคู่มือOpen office
คู่มือOpen office
 
คู่มือOpen office
คู่มือOpen officeคู่มือOpen office
คู่มือOpen office
 

Java

  • 1. สวัสดีครับ สําหรับบทความนีผมจะมาเสนอเรื องของการใช้งาน Java Script เรามาเริ มกันเลยนะครับ การใช้งาน Java Script นัน คุณจะต้องใส่คาสังภาษา Java Script เหล่านันลงไปในระหว่างคําสัง <SCRIPT> และ ํ ่ </SCRIPT> ซึงเป็ นคําสังภาษา HTML ทีใช้ในการแนบสคริ ปต์ภาษาต่างๆ ไม่วาจะเป็ น ภาษา Java Script, VB Script เป็ น ต้น โดยในการระบุชือของภาษาทีใช้นน จะกําหนดผ่านแอตทริ บิวต์ LANGUAGE เช่น ั <SCRIPT LANGUAGE="javascript"> โค้ดคําสัง ภาษา Java Script .... </SCRIPT> นอกจากนีคุณยังสามารถกําหนดเวอร์ชนของ Java Script ลงไปได้อีกด้วย เพือให้ บราว์เซอร์ทราบว่าคุณใช้คาสัง Java ั ํ Script เวอร์ชนอะไร เช่น ั <SCRIPT LANGUAGE="javascript1.1"> หรื อ <SCRIPT LANGUAGE="javascript1.3"> ในกรณี ทีบราว์เซอร์ของผูชม ไม่สนับสนุน หรื อปิ ดการใช้งาน(Disable) Java Script จะทําให้บราว์เซอร์เข้าใจว่าคําสังทีอยู่ ้ ภายในคําสัง <SCRIPT> และ </SCRIPT> เป็ นคําสังภาษา HTML ดังนันคุณควรจะใส่ หมายเหตุ (Comment) ของภาษา HTML ลงไประหว่างคําสังภาษา Java Script เพือให้ Browser ทีไม่ สนับสนุน Java Script แสดงผลได้ถูกต้อง ดังนี <SCRIPT LANGUAGE="javascript"> <!-- โค้ดคําสัง ภาษา Java Script .... --> </SCRIPT> และสําหรับ Browser ทีไม่สนับสนุน Java Script นันคุณสามารถทีจะใส่โค้ด HTML ธรรมดาแทนได้ โดยการใช้คาสัง ํ <NOSCRIPT></NOSCRIPT> ดังนี <SCRIPT LANGUAGE="javascript"> <!-- โค้ดคําสัง ภาษา Java Script .... --> </SCRIPT> <NOSCRIPT> โค้ดคําสัง ภาษา HTML ธรรมดา ในกรณี ทีได้สามารถแสดงผล Java Script ได้
  • 2. .... </NOSCRIPT> เนืองจากภาษา Java Script นัน เป็ นภาษาแบบสคริ ปต์ทีสามารถใส่ลงไปในส่วนใดๆของ ไฟล์ HTML ก็ได้ แต่โดยปกติ มักจะนิยมใส่ไว้ระหว่างคําสัง <HEAD> ... </HEAD> เพือทีคําสังเหล่านีจะได้ถูกเรี ยกขึนมาก่อนเว็บเพจ เช่น <HEAD> <script language="javascript"> คําสังภาษา Java Script ... </script> </HEAD> หรื อคุณสามารถใช้คาสังภาษา Java Script แทรกลงไปใน HTML TAG ผ่านทาง Event ทีสนับสนุน TAG นันๆ เช่น ํ <IMG SRC="ชือไฟล์รูปภาพ.gif" OnMouseOver="คําสัง Java Script;"> นอกจากนีคุณยังสามารถทีจะนําเอาโค้ด Java Script ทีคุณเขียนขึนทังหมด (ตังแต่คาสัง <script> ...ถึง </script> ) ไปสร้าง ํ เป็ นไฟล์ใหม่ แล้วบันทึกเป็ นนามสกุล .js จากนันจึงใช้คาสังผนวกไฟล์ .js นันขึนมาใช้งาน โดยใช้คาสัง ํ ํ <SCRIPT LANGUAGE="javascript1.1" SRC="ชือไฟล์.js"></SCRIPT> ซึงการใช้วธีผนวกไฟล์นี ทําให้คุณสามารถนําเอาโค้ด Java Script นีไปใช้งานในเว็บเพจต่างๆได้ โดยทีไม่ตองทําการเขียน ิ ้ ใหม่ทุกๆครัง รู ปแบบการใช้ คาสั ง ํ สําหรับโคร้งสร้างคําสังภาษา Java Script นัน จะมีรูปทีขึนต้นด้วย คําสัง หรื อนิพจน์ต่างๆ จากนันต้องตามด้วยเครื องหมาย ; เพือบอกให้ทราบว่าจบคําสังแล้ว เช่น document.write("Webthaidd"); alert("Webthaidd"); เนืองจากภาษา Java Script นันจะใช้เครื องหมาย ; เพือแยกแต่ละคําสังออกจากกัน ดังนันคุณสามารถทีจะเขียนคําสังต่างๆ ให้ต่อกันโดยไม่จาเป็ นต้องขึนบรรทัดใหม่ก็ได้ เช่น ํ document.write("Hello Word"); alert("Hello Word"); เครื องหมาย ( ) ั สําหรับเครื องหมายนีจะใช้กบ Propreties, Method หรื อ นิพจน์และคําสังต่างๆ เช่น document.write("Webthaidd"); alert("Webthaidd"); Test = (Answer = 10) ? "correct" : "Wrong" เครื องหมาย { } สําหรับเครื องหมายนี ใช้ในการเริ มต้น และสิ นสุดคําสัง และ ฟังก์ชนต่างๆ เช่น ั if (Test = "correct") {alert(Correct Answer");} function Test1() {
  • 3. document.write("Webthaidd"); } การใส่หมายเหตุ โดยปกติเมือเราเขียนคําสังต่างๆลงไป เราอาจจําเป็ นจะต้องเขียนหมายเหตุต่างๆ กํากับไว้ เพืออธิบายว่าโปรแกรมหรื อคําสัง นัน ใช้ทาอะไร หรื ออาจจะหมายเหตุไว้ เพือข้ามการทํางาน ในส่วนทียังไม่ตองการให้ทางาน เอาไว้ก่อน ในขณะทีทดสอบ ํ ้ ํ โปรแกรมอยู่ ซึงวิธีการใช้ หมายเหตุ นันจะใช้เครื องหมาย /* แล้วตามด้วยข้อความหมายเหตุ และปิ ดหมายเหตุดวยคําสัง */ เช่น ้ alert("test"); /* Make Dialog Box*/ หากคุณต้องการหมายเหตุหลายๆบรรทัด ก็สามารถทําได้โดยไม่ตองใส่ /* */ ทุกบรรทัด แต่ใส่เฉพาะบบรทัดแรก และ ้ บรรทัด สุดท้าย เช่น function Test1() { /* ฟังก์ชนนี ั ใช้สาหรับตรวจเช็คข้อมูลก่อนส่ง ฟอร์ม ํ เขียนเมือวันที 15/11/01 */ คําสังภาษา Java Script ... .... } ความหมายของ static เมือวางไว้ หน้ าตัวแปรใดๆ static เมือวางไว้หน้าตัวแปรใดๆ ทีเป็ นสมาชิกของคลาสจะทําให้สมาชิกตัวนันถูกสร้างขึนบนพืนทีคลาสเท่านัน และมีเพียง ก๊อปปี เดียว ส่วนสมาชิกใดทีไม่เป็ น static ก็จะถูกสร้างขึนบนพืนทีของ instance โดยมีหนึงก๊อปปี ต่อหนึง instance ลองมา ดูภาพประกอบกันนะครับ จากคลาส MyClass จะมีสมาชิกทีเป็ นตัวแปรอยู่ 2 ตัว คือ n และ x โดยตัวแปร n จะถูกประกาศเป็ น static และมี Method 1 ตัวชือ getX() ผมจะสร้าง instance ขึนมา 2 ตัวจากคําสัง
  • 4. MyClass a = new MyClass(); MyClass b = new MyClass(); เมือสร้าง instance แล้วจะเกิดเหตุการณ์คือ ตัวแปร x นันถูกสร้างขึนมาคนละ 1 ตัวใน instance ของทังสอง(ของใครของ ่ มัน) เวลาเรี ยกใช้ x ทังสองก็จะอยูคนละส่วนกัน(เพราะเป็ นคนละ instance) แต่ตวแปร n จะไม่เป็ นในลักษณะดังกล่าว ั เนืองจากเป็ น static ซึงจะถูกสร้างบนพืนทีของคลาสเท่านันและมีเพียงก๊อปปี เดียว ดังนันเวลาที instance ทังสองเรี ยกใช้ตวั แปร n ก็จะมีการ reference ไปทีพืนทีของ MyClass เพือเรี ยกใช้ตวแปร n มาใช้งานซึงจะมองเป็ นตัวแปรตัวเดียวกันนันเอง ั เราอาจจะเรี ยกตัวแปร n อีกอย่างว่า "Class Variable" และเราสามารถเรี ยกใช้ตวแปร n ภายนอกคลาสได้โดยใช้ชือคลาส ั เรี ยก เช่น MyClass.n โดยไม่ตองผ่าน instance เลย ้ ่ ส่วน Method ทีอยูในคลาสจะถูกเก็บไว้ภายในพืนทีของคลาสนันๆ เลยและใช้การ reference ไปที Method เหล่านันเมือ ั ต้องการใช้งาน เหตุทีเป็ นเช่นนีเพราะจะเป็ นการประหยัดพืนทีของหน่วยความจําให้กบโปรแกรมนันเอง ซึงพืนทีทีใช้เก็บ Method นันจะถูกสร้างขึนมาเพียงครังเดียวเท่านันตอนทีเราประกาศคลาส(ในตัวอย่างคือ MyClass) และเมือสร้าง instance ั ขึนมาก็ไม่จาเป็ นต้องสร้าง Method ขึนมาให้กบ instance ซําอีกเพียงแต่เก็บค่า reference ทีจะไปเรี ยกใช้งาน Method มาก็ ํ พอแล้ว จะมีการสร้างแค่ตวแปรทีไม่ได้กาหนดเป็ น static เท่านัน(ใ◌◌้นตัวอย่างคือ x) เพราะตัวแปรเหล่านีอาจจะเก็บค่า ั ํ ี ่ ไม่เหมือน กันขึนอยูแต่ละ instance ความหมายของ static เมือวางอยู่หน้ า Method static เมือนําไปวางไว้หน้า Method ใดๆ จะทําให้สามารถเรี ยกใช้ Method นันภายในคลาสได้โดยไม่ตองใช้ instance เรี ยก ้ เลย ผมขอยกตัวอย่างเก่ามาแสดงให้เห็นนะครับ จากรู ปเราจะเห็นว่ามีการเรี ยกใช้ printCircle ในคลาส TestPass1 โดยไม่ตองผ่าน instance เลยเนืองจาก printCircle ถูก ้ กําหนดเป็ น static ั ในบทความนีผมขอเสนอเรื องราวทีเป็ นส่วนทีลึกลงไปอีกนิดเกียวกับคําศัพท์บางตัวทีใช้กนในภาษา Java นะ ครับ คําว่า instance ครับ บางครังเราอาจจะพบเห็นในหนังสื อบางเล่มแล้วเกิดข้อสงสัยครับว่ามันหมายความว่าอย่างไรเห็น เรี ยกว่า instance เนียเรามาดูกนซิครับว่ามันมีึความหมายอย่างไรกันแน่ ั
  • 5. คําว่า instance นันในความรู ้สึกของผมเองมันก็เหมือนกับทีเราเรี ยกว่า object นันแหละครับ ตังแต่บทความแรกๆ หรื อ บทความทีผ่านมาผมได้ให้คานิยามของประโยคต่อไปนีว่าการประกาศ object (ถ้าติดตามบทความตังแต่ตนๆ) ํ ้ Circle myCircle = new Circle(); myCircle คือ object ของคลาส Circle แล้วผมบอกว่า new Circle() คือคําสังทีใช้สร้าง object โดยโหลด Constructor Circle() ของคลาส Circle เข้ามาใน object ด้วย นีคือในส่วนทีผมได้กล่าวไว้ ทีนีลองมาดูการนิยามแบบ instance บ้างนะ ครับ ่ เราสามารถกล่าวใหม่ได้วา myCircle คือ instance ของคลาส Circle โดย instance นีจะเป็ นตัวเก็บโครงสร้างของ ่ คลาสใดๆ ไว้ไม่วาจะเป็ นตัวแปรในคลาสหรื อ Method ต่างๆ ซึง instance เหล่านีจะไปจองพืนทีในหน่อยความจําไว้เพือ เก็บโครงสรัางดังกล่าว ลองมาตัวอย่างอีกแบบหนึงครับ ผมให้มีคลาสหนึงชือ Employee จากคลาสดังกล่าวผมจะทําการสร้าง instance ขึนมาหนึงตัวชือ p สามารถทําได้ดงนี ั Employee p = new Employee(); ทําให้เราได้ p เป็ น instance ของคลาสนีดังภาพ จากรู ปเราจะเห็นว่า instance ก็เปรี ยบเหมือนกล่องใบหนึงโดยภายในนันจะมี value เป็ นพืนทีทีใช้เก็บตัวแปรและ Method ต่างๆ ของคลาสและจะมี address เป็ นตัวชีไปยัง value ทําหน้าทีคล้าย pointer แต่ในภาษา Java จะไม่เรี ยก pointer จะ เรี ยก reference แทน ส่วน p จะเป็ นชือของ reference ทีจะใช้ในการอ้างถึงตัวแปรและ Method ต่างๆ ภายในคลาสนันเอง
  • 6. สรุปได้ ว่า ประโยค Employee p เป็ นการประกาศว่า p เป็ น reference ของคลาส Employee ประโยค new Employee() เป็ นการสร้าง instance ของคลาส Employee ถ้าเราประกาศ Employee p ; เฉยๆ จะทําให้ได้ p เป็ น reference แต่ไม่มีหน่วยความจําทีเก็บค่าของ instance ถ้าเราประโยค new Employee() ; เฉยๆ จะทําให้เราได้หน่วยความจําทีเก็บค่าของ instance แต่จะไม่มี reference ซึงเรา สามารถประกาศแยกกันได้ดงนี ั Employee p ; p = new Employee() ; การประกาศลักษณะนีก็จะหมายความว่า เราได้ประกาศ p เป็ น reference ก่อน จากนันบรรทัดที 2 จึงสร้าง instance ขึน ั มาแล้วไปกําหนดค่าให้กบ p เราจะได้ p เป็ น reference ของ instance นีทันที ่ การใช้งานของ p นันคือ เราจะใช้อางถึงสมาชิกต่างๆ ทีอยูใน instance นันโดยใช้เครื องหมาย dot(.) มาเชือม เช่น p.id หรื อ ้ p.getName() เป็ นต้น ่ ั ส่วนในการอ้างถึงสมาชิกใน instance นันก็ขึนอยูกบการกําหนด modifiers ของสมาชิกด้วย (modifiers คือ public ,private และ protected) ตัวอย่างเช่น ในคลาส Employee มีสมาชิกชือ id เป็ น public เราสามารถใช้ p (p.id)อ้างถึงได้จากภายนอก คลาส Employee แต่ถานํา p มาอ้างถึงตัวแปร name กับ salary จะไม่สามารถทําได้เนืองจากมี modifiers เป็ น private ซึง ้ สามารถใช้ได้ภายในคลาส Employee เท่านันจะมาอ้างนอกคลาสไม่ได้เลย จากข้อสังเกตดังกล่าวจะเห็นว่า ตัวแปร name กับ salary เป็ น private วิธีทีจะทําให้เรี ยกใช้ตวแปรนีจากนอกคลาสได้ก็คือ ต้องสร้าง Method ทีใช้ในการอ่านค่าและเขียน ั ค่า ในทีนีก็คือ public void setName(String n) { name = n ; } (Method นีใช้เขียนค่า name) public String getName( ) { return name ; } (Method นีใช้อ่านค่า name) public void setSalary(double s) { salary = s ; } (Method นีใช้เขียนค่า salary) public double getSalary( ) { return salary ; } (Method นีใช้อ่านค่า salary) ทีทําเช่นนีก็เพราะว่าเราต้องการป้ องการตัวแปร name กับ salary 2 ตัวนีไว้ให้ใช้ได้เฉพาะทีนันเองเพือความปลอดภัยของตัว แปร วิธีเรี ยกใช้งานสามารถทําได้ดงนี ั Employee p = new Employee(); p.id = 12345 ; p.setName("ramet") ; p.setSalary(6000); system.out.println(p.id+" , "+p.getName()+" , "+p.getSalary()) ; สําหรับบทความนีอาจจะดูเนือหาหนักไปหน่อยนะครับ ก็เขียนขึนมาเพือให้พวกเรามีความรู ้ทีลึกลงไปอีกซักนิดกับ Java ลองพยายามทําความเข้าใจกันดูซกนิดนะครับ เพราะกว่าทีผมจะเข้าใจความหมายของมันได้นีก็เล่นเอาแทบแย่ไปเหมือนกัน ั สําหรับบทความนีก็คงเอาไว้แค่นีนะครับ สวัสดีครับ... คําสัง break และ continue มีรูปแบบดังนี break ถ้าโปรแกรมพบคําสังนี จะทําหลุดออกจากลูปการทํางานทันที continue ถ้าโปรแกรมพบคําสังนี จะทําให้หยุดการทํางานทีจุดนัน แล้วย้อนกลับไปทํางานทีต้นลูปใหม่
  • 7. จากแผนภาพจะเห็นเส้นประนันหมายถึงกรณี ทีในระหว่างการวนลูปนันมีคาสัง break คันขึนมาก็จะทําให้โปรแกรมวิงออก ํ จากลูปทันทีหรื อถ้ามีคาสัง continue ก็จะหยุด การทํางานทีจุดนันแล้วย้อนกลับไปทํางานใหม่ทีต้นลูป ให้ลองดูตาม ํ เส้นประนะครับ เสร็ จแล้วลองมาดูตวอย่างจริ งกันเลยครับ ั
  • 8. อธิบายโปรแกรม จากโปรแกรมนีนะครับจะเห็นว่าเงือนไขที while นันจงใจให้มีการวนลูปแบบไม่รู้จบเพราะ 1 < 2 เสมอและเป็ นจริ ง ดังนันลูป while จะไม่มีการหยุด การทํางานได้เลย พอเข้ามาในลูปจะมีการนําค่า num มาบวกเพิมทีละ ็ 1 ต่อการวนลูป 1 รอบ แล้วไปเช็คที if โดยจะแบ่งเป็ น 2 ส่วน คือ ถ้า num = 10 เมือไหร่ กจะพิมพ์คา ว่า End พร้อมกับมาเจอ ํ คําสัง break ทีจุดนีก็จะทําให้ออกจากลูปได้ แต่ถาค่า num ยังไม่ถึง 10 ก็จะเข้าไปในเงือนไข if อีกตัวนึงคือ ให้พิมพ์ค่า ้ Number = ออกมาและ มาเจอคําสัง continue ทีจุดนีทําให้มีการย้อนกลับไปทีต้นลูป while ทันที โดยจะทําเช่นนีไปเรื อยๆ จนค่า num เป็ น 10 ก็จะไป break โปรแกรมออกไปเลยจะไม่มีการ กระทําบรรทัดที 19 เลยนะครับลองสังเกตดู คําสังประเภทนีมีไว้ใช้ร่วมกันกับคําสังวนลูปเท่านันนะครับจะไปใช้นอกลูปไม่ได้ไม่งนคอมไพล์ไม่ผานแน่ ถ้าถามว่าแล้ว ั ่ ่ ่ จะใช้ตอนไหนผมคงตอบได้แค่วาแล้วแต่สถานการณ์ ทีท่านเจออยูแหละครับ สําหรับบทความนีผมขอจบเพียงเท่านีนะครับ
  • 9. คําสั ง do while มีรูปแบบดังนี ่ จากรู ปแบบของคําสัง do while จะเห็นได้วาไม่มีการเช็คเงือนไขก่อนว่าเป็ นจริ งหรื อเท็จ จะทําคําสังต่างๆ ที do ก่อน 1 ครัง ่ ้ พอจบการทําที do แล้วจึงมาเช็คเงือนไขที while ทีอยูดานล่าง ถ้าเงือนไขเป็ นจริ งก็จะกลับไปทํางานซําอีกครังใน do ถ้า เงือนไขเป็ นเท็จก็จะออกจากลูปไป เห็นไหมครับว่าจริ งๆ แล้วคล้ายกับคําสัง while ในบท ความทีแล้วไงครับ เพียงแต่ do while นันจะทํางานตามคําสังทีเราเขียนไว้ก่อนอย่างน้อย 1 ครังนันเอง ลองมาดูตวอย่างการใช้งานกันเลยครับ ั
  • 10. อธิบายโปรแกรม จากโค้ดตัวอย่างนีจะทําให้เห็นว่าเหตุการณ์ในลักษณะแบบนีจะต้องใช้ do while เข้ามาช่วยเนืองจากจะมี การรับค่าตัวเลขจากผูใช้งานก่อนแล้วจึงไป ตรวจสอบค่าต่อไปซึงถ้าค่าทีผูใช้กรอกมาเป็ น 0 จทําให้สินสุดการทํางานของ ้ ้ ลูปทันที ลองนึกภาพถ้าเขียนโดยใช้คาสัง while อย่างเดียวนันจะทําให้ไม่สามารถรับค่าตัวเลข มาก่อนได้เพราะคําสัง while ํ จะมีการเช็คค่าก่อนเข้าลูปนันเอง ผมคิดว่าคําสังในบทความนีก็ยงถือว่ายังไม่ยากเกินไปนะครับสําหรับผูเ้ ริ มต้น พยายามลองฝึ กฝนเขียนดูนะครับ บทความ ั หน้าก็จะเป็ นคําสังในการวนลูปทีเป็ นคําสังสุดท้าย แล้วนะครับ จะเป็ นคําสังอะไรนันให้ติดตามไปดูได้ครับ.. สวัสดีครับ บทความในตอนนีจะเป็ นตอนต่อจากตอนทีแล้วนะครับ มาย้อนกันสักนิดนึงว่าในตอนทีแล้วเราได้กล่าวถึง คําสังแบบ simple if ไป ซึงจะเป็ นการ ตรวจสอบเงือนไขว่าถ้าเป็ นจริ งจะเข้าไปทํางานในกลุ่มคําสังทีเรากําหนดไว้ แต่ถา ้ เป็ นเท็จจะข้ามไป ถ้าใครลืมลองย้อนกลับไปดูในบทความตอนทีแล้วนะครับสําหรับในตอนนี เราจะพูดถึงเงือนไขในแบบ ที 2 คือ if...else กันต่อเลยนะครับ 2 .แบบ 2 เงือนไข (if...else) มีรูปแบบดังนี จากรู ปแบบของคําสังจะเห็นว่าจะมีลกษณะการเขียนคล้ายกับแบบ simple if แต่จะมีการเพิมเติมคําว่า else เข้าไปด้วย ซึง ั การทํางานของคําสังแบบนีนันจะทําการตรวจ สอบเงือนไขที if ก่อนว่าเป็ นจริ งหรื อเท็จ โดยถ้าเป็ นจริ งจะไปทํางานใน กลุ่มคําสังทีเรากําหนดไว้ใน if แต่ถาเป็ นเท็จก็จะไปทํางานในกลุมคําสังทีอยูในส่วนของ else ซึงจะ เป็ นเหมือนมีทางเลือก ้ ่ ่ 2 ทางนันเอง ลองมาดูแผนภาพของคําสังแบบ if...else กันนะครับ
  • 11. ดูจากแผนภาพแล้วจะเห็นว่าเมือเงือนไขเป็ นจริ งจะวิงเข้ามาทําตามกลุ่มคําสังทีเรากําหนดไว้ในกลุ่มแรก แต่ถาเงือนไขเป็ น ้ เท็จก็จะวิงเข้ามาทีกลุ่มคําสังของ else ในกลุ่มที 2 จากนันจึงค่อยมาทําทีคําสังในส่วนถัดมาของโปรแกรมต่อไป ลองมาดู ตัวอย่างทีเป็ นโปรแกรมกันเลยครับ อธิบายโปรแกรม จากโปรแกรมใน main method จะประกาศตัวแปรไว้ 3 ตัวคือ x = 8 , y = 2 และตัวแปร z จากนันมาเจอ คําสัง if โดยมีเงือไข ว่า x มากกว่าหรื อเท่ากับ y ถ้าเงือนไขเป็ นจริ งจะเข้ามาทําคําสังภายในส่วนของ if ทันที คือให้หาค่า ของ x-y และแสดงผลออกมา แต่ถาเงือนไขเป็ นเท็จจะข้ามาทําส่วนของ else ของโปรแกรมคือ หาค่าของ x+y และแสดงผล ้ ออกมา เมือรันโปรแกรมนีแล้วจะได้ผลลัพธ์คือ z = 10 นะครับ ให้ลองเปลียนค่า x ให้นอยกว่าค่า y ดูนะครับ แล้วลองรัน ้ โปรแกรมดูใหม่ครับว่า ผลออกมาจะเป็ นอย่างไร? ต่อไปผมจะมาเฉลยสิ งทีผมเคยถามไว้ในบทความคราวทีแล้วนะครับ ลองย้อนไปดูนะครับว่าผมทิงคําถามไว้วาอย่างไร ่ สําหรับคนทีรู ้แล้วก็อ่านผ่านไปได้เลยครับ สําหรับใคร ทียังไม่เคลียผมจะเฉลยให้ฟังว่า จากตัวอย่างทีผมให้ไปคิดนันจะ เห็นว่าผมไม่ได้ใส่เครื องหมายปี กกาหลังจากทีใช้คาสัง if ในกรณีนีถ้าหากว่าเงือนไขของ if เป็ นจริ งนันมันจะ ทําคําสังทีอยู่ ํ หลังจาก if เพียงแค่บรรทัดเดียวเท่านันครับ คือ z=x-y หลังจากนันก็จะทําคําสังในบรรทัดทีเหลือทังหมด เพราะมันจะมอง ่ ่ ว่าบรรทัดทีเหลือนันไม่ได้อยูในส่วน ของเงือยไข if นันเอง ดังนันถ้าคุณลองรันโปรแกรมดูจะเห็นว่า ไม่วาเงือนไขจะจริ ง หรื อเท็จนันจะแสดงค่า z = ออกมา 2 ค่าเสมอ เราจึงควรระวังการใช้งานในส่วนนีให้ดี ด้วยนะครับ ให้ใช้เครื องหมายปี กกา
  • 12. ครอบคลุมให้ถูกทีถูกทางไม่งนโปรแกรมเราจะทํางานผิดพลาดอย่างแน่นอน ั สําหรับบทความนีผมคงขอจบเพียงเท่านีครับ ค่อยๆ เรี ยนรู ้ไปทีละนิดครับ ไม่มีอะไรยากเกินไปสําหรับคนทีใฝ่ รู ้ครับ .. . สวัสดีครับ สําหรับบทความในตอนนีก็จะได้พบกับเนือหาของภาษา java กันนะครับ ซึงผมจะพูดถึงเรื อง โครงสร้างของภาษา การสร้าง Class ,Method และสร้าง Object ขึนมาใช้งานนะครับ ให้ท่านพิจารณาโค้ดของโปรแกรม ต่อไปนีนะครับ โค้ดโปรแกรมจะเหมือนกับบทความตอนทีแล้ว ให้ท่านลองรันดูผลลัพธ์นะครับ จากนันให้ลองเขียนโค้ดโปรแกรมอีก โปรแกรมตามรู ปข้างล่างครับ เกียวกับการเซฟและตังชือไฟล์ อย่างทีผมเคยกล่าวไว้แล้วนะครับว่าเวลาทีเราเขียนโค้ดโปรแกรมเสร็ จแล้ว เราจะต้องทํา ่ การเซฟโดยให้ชือไฟล์มีชือเดียวกับชือ Class ทุกประการ เนืองจากตัวคอมไพเลอร์จะได้ทราบว่าคลาสใดอยูในไฟล์ใด และจะเป็ นการสะดวกสําหรับผูเ้ ขียนเองด้วยในการแยกแยะคลาสต่างๆ เก็บไว้ ภาษาจาวามีความเข้มงวดในการใช้ ตัวอักษรเล็กและใหญ่ดวย เช่น คําว่า hello กับ Hello จะไม่เหมือนกัน ถ้าโปรแกรมหนึงมีหลายคลาสในการตังชือไฟล์นน ้ ั ให้สงเกตว่าคลาสใดมี main อยูก็ให้เซฟไฟล์เป็ นชือเดียวกับคลาสนันๆ ั ่
  • 13. ่ จากโค้ดโปรแกรมที 2 เมือรันโปแกรมออกมาแล้วจะเห็นว่าได้วาผลลัพธ์เหมือนกัน ถามว่า 2 โปรแกรมนีมีขอแตกต่างกัน ้ อย่างไร ? บางคนว่าโปรแกรมแรกสันกว่าโปรแรกมที 2 ครับอันนีเป็ นลักษณะทางกายภาพทีเราเห็นได้ชดเจนทีสุด บางคน ั ุ่ ว่าแล้วอย่างนีจะเขียนแบบที 2 ทําไมให้ยงยากใจ ยืดเยืออีกต่างหาก สรุ ปก็คือ จะเขียนแบบไหนก็ไม่ผิดหรอกครับ เพียงแต่ ว่าการเขียนโปรแกรมแบบวิธีที 2 จะเป็ นการแสดงให้เห็นถึงแนวคิดในการเขียนโปรแกรมแบบ OOP ครับ ซึงเป็ น จุดประสงค์หลักของภาษานี ผมจะอธิบายโปรแกรมที 2 ทีละจุดเลยนะครับ มาลองดูกน ั
  • 14. 1. บรรทัดที 1 คือ การนํา package เข้ามาใช้งานโดยจะต้องใช้คาสัง import แล้วอย่าลืมปิ ดท้ายด้วยเครื องหมาย ; นะครับมา ํ ดูความหมายของคําว่า package กันครับ Java Class Library (Package) Java มีลกษณะเช่นเดียวกับโปรแกรมภาษาระดับสูงอืนๆ คือ จะมี Class ย่อยทีเขียนขึนมาให้เรี ยกใช้ได้ทนที โดยไม่ตอง ั ั ้ ่ เขียนเองให้เสี ยเวลา Class เหล่านีเรี ยกว่า Libraries แต่สาหรับใน Java จะถูกเรี ยกว่า Package ซึงใน Java เองก็มีอยูมากมาย ํ ให้เลือกใช้งานได้ต่างๆ กัน เช่น ช่วยสนับสนุนงานด้าน Input และ Output งานด้าน Graphic User Interface (GUI) การ จัดการข้อความ การคํานวณทางคณิ ตศาสตร์ และอืนๆ package ในจาวามีเยอะครับผมขอยกตัวอย่างของ package บางส่วน ขึนมาให้ดูเท่านันครับ
  • 15. 2. บรรทัดที 2 นีจะเป็ นการสร้าง Class ขึนมาชือ Hello2 ส่วนคําว่า public ข้างหน้าเป็ นขอบเขตของคลาสเราซึงมี ความหมายดังนี ั public ใช้นิยามตัวแปร ,Method และ Class ใดๆ เพือให้สามารถนําไปใช้กบ Class หรื อ โปรแกรมอืนๆ ได้ private ใช้นิยามตัวแปร หรื อ Method เพือให้เรี ยกใช้ได้เฉพาะภายใน Class ทีสร้างตัวแปร หรื อ Method นันๆ ขึนมา เท่านัน protected ใช้นิยามตัวแปร หรื อ Method ทีใช้ได้เฉพาะ Class ทีสร้างขึนมาด้วยวิธีการสื บทอด (Inheritance) เท่านันโดย ปกติจะใช้ protected กับ Class ทีเป็ น Class ต้นฉบับ static ใช้นิยามตัวแปรและ Method ทีต้องการให้มีค่าคงที สามารถนําไปใช้ได้กบทุกๆ ส่วนของ Class โดยค่านันจะไม่มี ั ่ การเปลียนแปลงไม่วากรณี ใดๆ ั void ใช้นิยาม Method โดยเป็ นการกําหนดให้ไม่มีการส่งค่าใดๆ กลับมาให้กบ Method นี (ดังนันจึงไม่ตองใช้คาสัง ้ ํ return) สําหรับใครทียังไม่ค่อยเข้าใจเรื องขอบเขตทัง 5 ตัวนีก็ไม่ตองตกใจนะครับ ดูความหมายไปพลางๆ ก่อนเมือถึงจุดหนึงท่าน ้ จะเข้าใจไปเองครับ ในส่วนของการสร้างคลาสนีเมือตังชือคลาสแล้วให้ ตามด้วยเครื องหมาย { เมือจะเริ มเขียนส่วนอืนใน คลาส เมือสร้างองค์ประกอบต่างภายในคลาสเสร็ จแล้วให้ปิดด้วยเครื องหมาย } นะครับ 3. ดูในส่วนที 1 ในกรอบสี เหลียมนะครับบรรทัดที 4-8 ส่วนนีเรี ยกว่า Method ครับ เป็ นวิธีการทีจะให้ Object มาเรี ยกใช้ ั ผมให้ Method นีมีชือว่า Run ทําหน้าทีกําหนดค่าสติง (string) คําว่า "Hello Java" ให้กบตัวแปล S1 แล้วแสดงผลออกมา เมือจบคําสังใดๆ แล้วอย่าลืมเครื องหมาย ; นะครับ 4. ส่วนที 2 บรรทัดที 9-13 เป็ นการสร้าง Method ชือว่า main ครับ เป็ นเมดธอทหลักทีจะต้องมีในโปรแกรมครับ เวลารัน โปรแกรมจะมารันที main Method นีก่อนเสมอครับ เป็ นส่วนทีสําคัญทีสุดนะครับขาดไม่ได้ ภายในเมดธอทนีทํา อะ◌ําไรบ้างมาดูกนครับ ั Hello2 App = new Hello2( ) ; ตรงนีดูให้ดีนะครับ จะเป็ นการสร้าง Object ชือว่า App ครับ โดยการเขียนชือคลาสก่อนแล้วตามด้วยชือ Object ชือ อะ◌ําไรก็ได้ครับแต่ผมตังชือเป็ น App แล้วตามด้วย คําสัง new กับชือคลาสอีกทีแต่ชือคลาสหลัง new ให้ใส่ ( ) ไว้ดวยนะ ้ ครับ เพราะอะไรเหรอครับ ต้องติดตามต่อไปครับ สิ งทีผมยังไม่อธิบายในตอนนีมันจะไปเคลียเองในหัวข้อหรื อในบทถัดๆ ไปครับ App.Run( ) ; จุดนีเป็ นการให้ Object ทีเราสร้างมาเรี ยกใช้เมดธอท Run มาทํางานแล้วครับ โดยเขียนชือ Object แล้วใช้เครื องหมาย dot (.) เป็ นการอ้างถึง จากนันตามด้วยชือเมดธอททีเราต้องการเรี ยกใช้ครับ อย่าลืมนะครับ ทุกครังทีจบคําสังให้ตามด้วย ; ถ้า เขียน Method หรื อ Class อย่าลืมเปิ ด { และปิ ด } ทุกครัง เป็ นอย่างไรกันบ้างครับ พอจะมองเห็นแนวคิด แนวทางในการเขียนโปรแกรมขึนมาบ้างหรื อยังครับ จะเห็นว่าโปแกรมที 1 นันเขียนโดยมีเมดธอท main เพียงตัวเดียวก็ใช้งานได้แล้ว แต่โปรแกรมที 2 มีการสร้าง Object ทีเป็ นตัวแทนขึนมาเพือ ่ เรี ยกใช้เมดธอทอืนๆ ทีอยูในคลาสได้ดวย ให้ลองนึกถึงบทความแรกทีผมยกตัวอย่างเรื อง คลาสการทําไข่เจียว ดูนะครับ ้ ่ พอจะเปรี ยบเทียบให้เข้าใจขึนบ้างไหมครับ อีกจุดหนึงทีผมจะกล่าวถึงก็คือ ไม่วาจะเป็ นโปแกรมที 1 หรื อ 2 ภาษาจาวาก็ บังคับให้เราสร้างคลาสครับ ในโปรแกรมหนึงๆ ต้องมีคลาสอย่างน้อย 1 คลาสครับ ไม่มีไม่ได้ ตัวภาษาบังคับให้เราเขียน ่ โปรแกรมแบบ OOP ไปในตัวอยูแล้วครับ
  • 16. บทความนีผมเน้นเรื องโครงสร้างของภาษาและการสร้าง Class ,Method และ Object นะครับ คิดว่าคงจะทําให้หลายคน เข้าใจหลักการได้ดีขึน ในบทต่อก็จะเพิมความเข้มข้นขึนเรื อยๆ นะครับ ติดตามกันต่อไป สําหรับบทความนีผมขอจบเพียง เท่านีครับ ขอบคุณครับ. ่ ุ่ ก็ผานไปแล้วนะครับกับคําสัง if คราวนีเราจะมาขึนคําสังใหม่อีกคําสังนะครับ คือswicth ลักษณะการใช้คาสังนีก็ไม่ยงยาก ํ อะไรเลยครับเป็ นการเช็ค ตัวแปรทีรับเข้ามาว่าตรงกับ case ไหนก็จะเข้าไปทําใน case นันๆ เราลองมาดูรูปแบบของคําสัง นีกันเลยดีกว่าครับ คําสัง switch มีรูปแบบดังนี จากรู ปแบบของคําสังโปรแกรมจะตรวจสอบจากตัวแปรทีคําสัง switch (ตัวแปรในวงเล็บ)ว่ามีค่าเป็ นเท่าไรแล้วนํามา ตรวจสอบกับคําสัง case ถ้าตรงกับค่าของ case ใดก็จะทํางานตาม คําสังใน case นัน เมือทํางานเสร็ จ จะพบคําสัง break มี ผลทําให้ออกไปจากคําสัง switch ทันที ในกรณีทีไม่มีค่าใดตรงกับ case ทีระบุโปรแกรม จะมาทํางานทีคําสัง default โดย อัตโนมัติ ข้อกําหนดของการใช้คาสัง switch ํ ◌ุ 1. ตัวแปรทีใช้ในการตรวจสอบ จะต้องมีชนิดเป็ นตัวเลขอย่างใดอย่างหนึง ได้แก่ char,byte,short หรื อ int และต้องอยู่ ภายในเครื องหมายวงเล็บ ( ) เท่านัน ◌ุ 2. ชนิดของตัวเลขทีใช้ในการตรวจสอบในคําสัง case จะต้องเป็ นชนิดเดียวกันทังหมด ◌ุ 3. อาจไม่ใส่คาสัง break ไว้ก็ได้ แต่ถาไม่ใส่ จะทําให้โปรแกรมต้องตรวจสอบทุกๆเงือนไขจนกว่าจะหมด ซึงอาจทําให้ ํ ้ เสี ยเวลาได้ ถ้าเงือนไขมีมากและซับซ้อน ◌ุ 4. คําสัง default อาจใส่หรื อไม่ก็ได้ ถ้าใส่ก็นิยมใส่ไว้ทีบรรทัดสุดท้ายของการตรวจสอบ ลองมาดูตวอย่างทีเป็ นโปรแกรมกันเลยครับ ั สมมติให้ธนาคารคิดดอกเบียตามระยะเวลาการกูโดยแบ่งเป็ น 3 กลุ่ม คือ ้ กลุ่มที 1 ระยะเวลากู้ 5 ปี คิดดอกเบีย 12% กลุ่มที 2 ระยะเวลากู้ 15 ปี คิดดอกเบีย 18% กลุ่มที 3 ระยะเวลากู้ 30 ปี คิดดอกเบีย 24%
  • 17. ํ อธิบายโปรแกรม จากโปรแกรมเราจะแบ่ง case ออกเป็ น 3 case นะครับตามเงือนไขทีโจทย์กาหนดมา โดยเราจะรับค่า year เข้ามาและเปลียนค่า year เป็ น int เพือให้ เช็คใน switch ถ้าค่าปี ทีรับมาตรงกับ case ใดก็จะแสดงผลอัตราดอกเบีย ออกมา แต่ถาปี ทีเราเข้ามาไม่ตรงกับ case ใดเลยก็จะมาทําที default คือแสดงคําว่า Error ออกมา ้ คําสังในบทความนีคงไม่ยากเท่าไหร่ นะครับเพราะในภาษาอืนๆ ก็มีคาสังในลักษณะนีเช่นเดียวกันซึงถ้าใครเคยเขียน ํ โปรแกรมมาบ้างแล้วก็คงจะคุนเคยกับคําสังเหล่านีได้ดี บทความหน้าก็จะเป็ นคําสังในการวนลูปนะครับ ติดตามต่อไป ้ ครับ...
  • 18. คําสั ง for มีรูปแบบดังนี จากรู ปแบบของการใช้งานคําสังนีจะเห็นว่าในวงเล็บของคําสัง for นันมี 3 ส่วนทีต้องกําหนด คือ 1. ค่าตัวแปรเริ มต้น ใช้ ํ กําหนดค่าเริ มต้นของตัวแปรทีจะใช้ในการควบคุม การวนลูป 2. เงือนไข ใช้กาหนดเงือนไขการวนลูป 3. เปลียนแปลงค่าตัว แปร ใช้ในการเพิมหรื อลดค่าของตัวแปรทีใช้ในการควบคุมการวนลูป จะเห็นว่าการใช้งานนันต่างจาก คําสัง while โดยที คําสัง for นันจะมีการกําหนดค่าและเงือนไขต่างๆ ลงไปเลยทันทีเพือใช้ในการควบคุมการวนลูปตามทีเราต้องการ ลองมาดู ตัวอย่างกันดีกว่านะครับ
  • 19. อธิบายโปรแกรม จากโค้ดโปรแกรมนีจะเป็ นการคํานวณหาค่าผลบวกของ 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)
  • 20. 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(“ * * * * * ”); ออกมาแบบนีนะครับ ใช้ได้แค่ดวงเดียวเท่านัน แล้วให้มนพิมพ์ออกมาเป็ นรู ปดังกล่าวรู ปใดรู ปหนึงโปรแกรมละ 1 รู ป ลองทํากันเล่นๆ ดูนะครับ ั ถือว่าเป็ นการฝึ กฝนการเขียนโปแกรมไปในตัว ถ้าใครอยากได้เฉลยก็ไปโพสต์บอกผมไว้ที webboard นะครับ ส่วนใน บทความนีผมขอจบ เพียงแค่นีนะครับเจอกันบทความหน้าครับ สวัสดีครับ สําหรับบทความนีเราจะมาคุยกันในเรื องของคําสังทีใช้ในการวนลูปหรื อทํางานซํานะครับ คําสังแรกทีผมจะ แนะนําก็คือ คําสัง while ครับ ซึงจะมี วิธีการใช้งานดังต่อไปนีครับ
  • 21. คําสั ง while มีรูปแบบดังนี จากรู ปแบบของคําสัง while จะมีการเช็คเงือนไขก่อนว่าเป็ นจริ งหรื อเท็จ ถ้าเงือนไขเป็ นจริ งก็จะเข้ามาทํางานในขอบเขต ของ while และเมือทํางานจบแล้วก็จะวนกลับมา เช็คเงือนไขที while กําหนดไว้อีกครังจะทําเช่นนีไปเรื อยๆ ตราบใดที เงือนไขยังคงเป็ นจริ งอยูก็จะทําคําสังทีอยูภายในคําสัง while ไปเรื อยๆ จนกว่าเมือตรวจสอบเงือนไข แล้วว่าเป็ นเท็จ จึงจะ ่ ่ ่ กระโดดออกมาทํางานทีคําสังถัดไปทีอยูนอกลูปของคําสัง while ลองมาดูตวอย่างการใช้งานกันเลยครับ ั ่ อธิบายโปรแกรม จากโปรแกรมทีเงือนไข while มีการกําหนดไว้วาค่าของ i ต้องไม่เกิน 10 ซึงเรากําหนดตัวแปร i ไว้ใน ตอนต้นไว้เป็ น 1 เมือเข้ามาทีคําสัง while เงือนไข จึงเป็ นจริ ง จากนันก็จะแสดงค่า i ออกมาแล้วทําการบวกค่า i อีก 1 แล้ว กลับไปเช็คเงือนไขอีก ทําเช่นนีไปเรื อยๆ จนค่า i บวกไปจนถึง 11 จะทําให้เงือนไขเป็ นเท็จจึงออกจาก ลูป while ได้
  • 22. **ข้อควรระวังของการใช้งานคือ ต้องแน่ใจว่าเงือนไขทีเรากําหนดจะต้องมีจุดสิ นสุดด้วยก็คือเงือนไขทีจะทําให้เป็ นเท็จ ถ้า ไม่มีจุดสิ นสุดจะทําให้ลูปวนแบบไม่รู้จบ บทความหน้าก็จะเป็ นคําสังในการวนลูปอีกแบบนะครับ สําหรับคําสัง while นันก็ลองไปฝึ กใช้งานกันให้คล่องนะครับ เจอ กันบทความหน้าครับ. ่ บทความนีผมจะมาแนะนําการ Java Script ทีทําให้ Status Bar มีขอความวิงครับคิดว่าหลายๆ คนคงอยากรู ้วาทํากันอย่างไร ้ ั ไม่ยากครับ มาลองดูกนเลยนะครับ ขันตอนการทํา 1. สร้างไฟล์ demo.html เพือใช้ในการทดสอบ Script นะครับ แล้ว copy code ด้านล่างนี เอาไว้ที tag <head> นะครับ <script language="JavaScript" type="text/javascript"> <!-- Beginning of JavaScript Code---------> function scroll_status (seed) { var msg = "พิมพ์ขอความทีต้องการให้แสดงทีนีครับ"; ้ var out = " "; var c = 1; if (150 < seed) { seed--; var cmd="scroll_status(" + seed + ")"; timerTwo = window.setTimeout(cmd, 100); } else if (seed <= 150 && 0 < seed) { for (c=0 ; c < seed ; c++) { out+=" "; } out+=msg; seed--; var cmd="scroll_status(" + seed + ")"; window.status=out; timerTwo=window.setTimeout(cmd,100); } else if (seed <= 0) { if (-seed < msg.length) { out+=msg.substring(-seed,msg.length); seed--; var cmd="scroll_status(" + seed + ")"; window.status=out;
  • 23. timerTwo=window.setTimeout(cmd,100); } else { window.status=" "; timerTwo=window.setTimeout("scroll_status(150)",100); } } } // -- End of JavaScript code -------------- --> </SCRIPT> หลังจาก copy code มาวางไว้ที tag <head> แล้วนะครับ จะต้องเหมือนกับ code ด้านล่างนะครับ <html> <head> <script language="JavaScript" type="text/javascript"> <!-- Beginning of JavaScript Code---------> function scroll_status (seed) { var msg = "^_^ ข้อความทีต้องการให้แสดงทีนีครับ ขอให้สนุกกับการทํานะครับ^_^"; //ส่วนนีจะเป็ นข้อความทีคุณจะต้อง ให้แสดงผลที Status Bar นะครับ var out = " "; var c = 1; if (150 < seed) { seed--; var cmd="scroll_status(" + seed + ")"; timerTwo = window.setTimeout(cmd, 100); } else if (seed <= 150 && 0 < seed) { for (c=0 ; c < seed ; c++) { out+=" "; } out+=msg; seed--; var cmd="scroll_status(" + seed + ")"; window.status=out; timerTwo=window.setTimeout(cmd,100); }
  • 24. else if (seed <= 0) { if (-seed < msg.length) { out+=msg.substring(-seed,msg.length); seed--; var cmd="scroll_status(" + seed + ")"; window.status=out; timerTwo=window.setTimeout(cmd,100); } else { window.status=" "; timerTwo=window.setTimeout("scroll_status(150)",100); } } } // -- End of JavaScript code -------------- --> </SCRIPT> <meta http-equiv="Content-Type" content="text/html; charset=windows-874" /> <title>HV menu</title> </head> <body> </body> </html> 2. แล้ว Copy code นีเอาไปไว้ใน tag <body> นะครับ onLoad="timerONE=window.setTimeout('scroll_status(100)',50);" หลังจาก copy code มาวางไว้ใน tag <body> แล้วนะครับ จะต้องเหมือนกับ code ด้านล่างนะครับ <body onLoad="timerONE=window.setTimeout('scroll_status(100)',50);"> 3. นีครับตัวอย่างทีสมบูรณ์ครับ <html> <head> <script language="JavaScript" type="text/javascript"> <!-- Beginning of JavaScript Code---------> function scroll_status (seed) { var msg = "^_^ ข้อความทีต้องการให้แสดงทีนีครับ ขอให้สนุกกับการทํานะครับ^_^"; var out = " "; var c = 1;
  • 25. if (150 < seed) { seed--; var cmd="scroll_status(" + seed + ")"; timerTwo = window.setTimeout(cmd, 100); } else if (seed <= 150 && 0 < seed) { for (c=0 ; c < seed ; c++) { out+=" "; } out+=msg; seed--; var cmd="scroll_status(" + seed + ")"; window.status=out; timerTwo=window.setTimeout(cmd,100); } else if (seed <= 0) { if (-seed < msg.length) { out+=msg.substring(-seed,msg.length); seed--; var cmd="scroll_status(" + seed + ")"; window.status=out; timerTwo=window.setTimeout(cmd,100); } else { window.status=" "; timerTwo=window.setTimeout("scroll_status(150)",100); } } } // -- End of JavaScript code -------------- --> </SCRIPT> <meta http-equiv="Content-Type" content="text/html; charset=windows-874" /> <title>HV menu</title> </head> <body onLoad="timerONE=window.setTimeout('scroll_status(100)',50);">
  • 26. </body> </html> การทําปฎิทนด้ วย Java Script ิ หลายท่านคงอยากทีจะแต่งเว็บไซด์ดวย ปฎิทิน แต่ไม่รู้จะทําอย่างไรหรื อไม่รู้วธีทา วันนีผมเลยเอา Scriptนีมาฝากกันนะ ้ ิ ํ ครับ 1. สร้างไฟล์ demo.html เพือใช้ในการทดสอบ Script นะครับ แล้ว copy code ด้านล่างนี เอาไว้ทีตําแหน่งทีเราต้องการจะให้ แสดงปฎิทินนะครับ <script language=JavaScript> <!-- Begin var bg_color = "bgcolor=#dddddd"; var bg_color_head = "bgcolor=#444444" var now = new Date(); var month_array = new Array("January" ,"February" ,"March" ,"April" ,"May" ,"June" ,"July" ,"August" ,"September" ,"October" ,"November" ,"December"); document.write("<form name=date_list><table "+ bg_color +"><tr style='font-family:MS Sans Serif;font-size:8pt;'> <td style='font-family:MS Sans Serif;font-size:8pt;'>"); document.write("<select name=month onchange=change_month(this.options.selectedIndex)>"); for(i=0;i<month_array.length;i++) //ส่วนทีให้แสดงเดือน { if (now.getMonth() != i) {document.write ("<option value="+i+">"+month_array[i]);} else {document.write ("<option value="+i+" selected>"+month_array[i]);} } document.write("</select>"); document.write("</td><td>"); document.write ("<select name=year onchange=change_year(this.options[this.options.selectedIndex])>"); for(i=1950;i<3000;i++) //ส่วนทีกําหนดให้แสดงปี พ.ศ. { if (now.getYear() != i) {document.write("<option value="+i+">"+(i+543));} else {document.write("<option value="+i+" selected>"+(i+543));} } document.write("</select></td></tr><tr style='font-family:MS Sans Serif;font-size:8pt;'><td colspan=2><center>");
  • 27. document.write("<table bgcolor=white border=0 cellspacing = 0 cellpading = 0 width=100%> <tr style='font-family:MS Sans Serif;font-size:8pt;' "+ bg_color_head +" align=center>"); document.write("<td><font color=yellow>Mo</font></td><td><font color=pink>Tu</td> <td><font color=#00ff66>We</td><td><font color=orange>Th</td><td><font color=#CCF2FF>Fr</td> <td ><font color=violet>Sa</td> <td ><font color=red>Su</td>"); document.write("</tr><tr style='font-family:MS Sans Serif;font-size:8pt;'>"); for(j=0;j<6;j++) //ส่วนทีให้แสดงวันที { for(i=0;i<7;i++) { document.write("<td style='font-family:MS Sans Serif;font-size:8pt;' align=center id=d"+i+"r"+j+"></td>") } document.write("</tr>"); } document.write("</table>"); document.write("</center></from></td></tr></table>"); var show_date = new Date(); function set_cal(show_date) { begin_day = new Date (show_date.getYear(),show_date.getMonth(),1); begin_day_date = begin_day.getDay(); end_day = new Date (show_date.getYear(),show_date.getMonth()+1,1); count_day = (end_day - begin_day)/1000/60/60/24; input_table(begin_day_date,count_day); } set_cal(show_date); function input_table(begin,count) { init(); j=0; if (begin!=0){i=begin-1;}else{i=6} for (c=1;c<count+1;c++) { colum_name = eval("d"+i+"r"+j); if ((now.getDate() == c)&&(show_date.getMonth() == now.getMonth())&&(show_date.getYear() == now.getYear())) {
  • 28. colum_name.style.backgroundColor = "#ff3399";colum_name.style.color = "white";}; colum_name.innerText = c; i++; if (i==7){i=0;j++;} } } function init() { for(j=0;j<6;j++) { for(i=0;i<7;i++) { colum_name = eval("d"+i+"r"+j); colum_name.innerText = "-"; colum_name.style.backgroundColor =""; colum_name.style.color =""; } } } function change_month(sel_month) { show_date = new Date(show_date.getYear(),sel_month,1); set_cal(show_date); } function change_year(sel_year) { sel_year = sel_year.value; show_date = new Date(sel_year,show_date.getMonth(),1); set_cal(show_date); } // End --> </script>
  • 29. การทํา ให้ Button นับ ถอยหลัง 1. Copy Script ส่วนนีไว้ใน ส่วนของ Head <script type="text/javascript"> function countdown(id){ i =id -1;//ให้ค่าลดลงทีละ 1 if(id > 1){ document.getElementById("bt_download").value ='Wait '+i+' Second..'; }else{ //เมือค่า i == 1 document.getElementById("bt_download").value ='Download Now'; document.getElementById("bt_download").disabled =''; } setTimeout("countdown("+i+")", 1000); //1000 = 1 วินาที } </script> 2.Copy Script นีไว้ที Body <body onLoad="countdown('10')"> เพือเริ มนับถอยหลังจาก 10 ถึง 0 onLoad="countdown('10')" เมือเปิ ดหน้าเว็บ มาให้เรี ยกใช้ฟังก์ชน countdown(); ั 3.Copy Script นีไว้ใน Body <form id="frm_download" name="frm_download" method="post" action="#"> <input name="bt_download" type="submit" id="button" value="Wait 10 Second.." disabled="disabled" /> </form> 4.ผลก็คือ Wait 10 Second..