More Related Content More from พงศธร ภักดี (16) Java1. สวัสดีครับ สําหรับบทความนีผมจะมาเสนอเรื องของการใช้งาน 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 ถ้าโปรแกรมพบคําสังนี จะทําให้หยุดการทํางานทีจุดนัน แล้วย้อนกลับไปทํางานทีต้นลูปใหม่
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..