ภายในบล็อกของคลาสหรือบล็อกของเมธอดจะประกอบด้วยบรรทัดของประโยคคำสั่ง (Statement) โดยประโยคคำสั่งแบ่งออกเป็น 4 ชนิดคือ Declaration Statement คือประโยคคำสั่งในการประกาศตัวแปร Expression Statement คือประโยคคำสั่งที่มีการดำเนินการ เช่น มีการดำเนินการทางคณิตศาสตร์ เปลี่ยนค่าของตัวแปร เรียกใช้งานเมธอด สร้างออบเจกต์ เป็นต้น Control Flow Statement คือประโยคคำสั่งแบบมีเงื่อนไข เช่น บล๊อคของคำสั่ง if และ Iteration Statement เรียกว่าประโยคคำสั่งวนซ้ำ คือการกำหนดให้โปรแกรมทำงานซ้ำๆตามเงื่อนไขที่กำหนด
ประโยคคำสั่งแต่ละประโยคจะต้องปิดท้ายด้วยอักขระ ; เพื่อบอกว่าจบประโยคคำสั่งแล้ว ตัวอย่างของประโยคคำสั่งแต่ละชนิดตามรูปด้านล่าง
ประโยคคำสั่งในการประกาศตัวแปร (Declaration Statement)
เป็นประโยคคำสั่งที่ใช้ในการประกาศตัวแปร ตัวอย่างเช่น
โดยมีรูปแบบของประโยคคำสั่งคือ
ตัวแปร = ข้อมูลหรือนิพจน์
จากตัวอย่างด้านบน int double และ String คือ ชนิดข้อมูล ส่วน secondValue doubleValue และ name คือตัวแปร สำหรับเลข 15 12.24 และข้อความ Sombat คือข้อมูล ในกรณีที่เป็นการสร้างออบเจกต์จากคลาส เราจะต้องประกาศตัวแปรเพื่อเก็บออบเจกต์ที่ถูกสร้างขึ้นมาเช่นเดียวกับที่เราประกาศตัวแปรเพื่อเก็บข้อมูล
รูปแบบของการประกาศตัวแปรเพื่อเก็บออบเจกต์จะเป็นแบบเดียวกันกับการประกาศตัวแปรเพื่อเก็บข้อมูลโดยมองว่าออบเจกต์เป็นชนิดข้อมูลแบบหนึ่ง ตัวอย่างเช่น
ซึ่ง Car ก็คือคลาส Car ที่เรามองว่าเป็นชนิดข้อมูล myCar คือตัวแปร และ new Car() คือคำสั่งในการสร้างออบเจกต์ โดย new เป็นคีย์เวิร์ดในภาษาจาวาและ Car() คือเมธอดคอนสตรัคเตอร์ของคลาส Car
ประโยคคำสั่งในการดำเนินการ (Expression Statement)
เป็นประโยคคำสั่งที่ประกอบด้วยนิพจน์ เช่น มีการดำเนินการทางคณิตศาสตร์ มีการดำเนินการทางตรรกศาสตร์ มีการเปลี่ยนค่าของตัวแปร มีการเรียกใช้งานเมธอด เป็นต้น ประโยคคำสั่งดำเนินการจะถูกใช้ปะปนไปกับประโยคคำสั่งแบบอื่นด้วย ตัวอย่างเช่น
ประโยคคำสั่งเพื่อเปลี่ยนทิศทางการดำเนินการ (Control Flow Statement)
เป็นประโยคคำสั่งแบบมีเงื่อนไขซึ่งประกอบด้วยคีย์เวิร์ดที่เป็นคำสั่งแบบมีเงื่อนไขและนิพจน์ที่ให้ผลลัพธ์ทางตรรกศาตร์ ตัวอย่างเช่น
คำสั่ง If
If เป็นคำสั่งที่ใช้ในการสร้างประโยคคำสั่งแบบมีเงื่อนไข โดยหากผลลัพธ์ของเงื่อนไขเป็นจริง (true) จึงจะทำตามประโยคคำสั่งที่อยู่ภายใต้บล็อกของ if การกำหนดเงื่อนไขสามารถทำได้โดยใช้ตัวดำเนินการดังที่กล่าวมาเพื่อสร้างเงื่อนไขที่ต้องการ รูปแบบการใช้คำสั่ง if ดังนี้
If (เงื่อนไขที่ต้องการตรวจสอบ) {
ประโยคคำสั่ง;
ประโยคคำสั่ง;
ประโยคคำสั่ง;
}
สิ่งที่ต้องระวังคือในการกำหนดเงื่อนไขคือผลลัพธ์ต้องเป็นจริงตามความต้องการของเรา จากตัวอย่างด้านล่างเรากำหนดค่าเท็จ (false) ให้กับตัวแปรและกำหนดให้เงื่อนไขตรวจสอบว่าตัวแปรต้องเป็นเท็จจึงจะเป็นจริงตามที่เราต้องการ
ตัวอย่างด้านล่างเป็นการใช้ตัวดำเนินการหลายแบบผสมกันเพื่อตัดเกรดของนักเรียน สังเกตุว่าเราจะใส่วงเล็บกับทุกๆคู่ของการดำเนินการตามลำดับเพื่อให้แน่ใจว่าลำดับการคำนวนจะเป็นไปตามที่ต้องการและเพื่อให้คนที่มาอ่านโปรแกรมในภายหลังหลังเข้าใจง่ายขึ้น
คำสั่ง if – else
If – else เป็นคำสั่งที่ใช้ในการสร้างประโยคคำสั่งแบบมีเงื่อนไข โดยหากเงื่อนไขเป็นจริงจึงจะทำตามประโยคคำสั่งที่อยู่ภายใต้บล็อกของ if แต่ถ้าเงื่อนไขเป็นเท็จจะทำตามประโยคคำสั่งที่อยู่ภายใต้บล็อกของ else การกำหนดเงื่อนไขสามารถทำได้โดยใช้ตัวดำเนินการดังที่กล่าวมาเพื่อสร้างเงื่อนไขที่ต้องการ รูปแบบการใช้คำสั่ง if – elseดังนี้
If (เงื่อนไขที่ต้องการตรวจสอบ) {
ประโยคคำสั่ง;
ประโยคคำสั่ง;
ประโยคคำสั่ง;
} else {
ประโยคคำสั่ง;
ประโยคคำสั่ง;
ประโยคคำสั่ง;
}
เราสามารถซ้อนเงื่อนไข if – else หลายๆชั้นได้ตามตัวอย่าง
If (เงื่อนไขที่ต้องการตรวจสอบ) {
ประโยคคำสั่ง;
ประโยคคำสั่ง;
} else If (เงื่อนไขที่ต้องการตรวจสอบ) {
ประโยคคำสั่ง;
ประโยคคำสั่ง;
} else If (เงื่อนไขที่ต้องการตรวจสอบ) {
ประโยคคำสั่ง;
ประโยคคำสั่ง;
} else {
ประโยคคำสั่ง;
ประโยคคำสั่ง;
}
Ternary Operator
Ternary Operator เป็นรูปแบบย่อๆของ if – else โดยมีโครงสร้างดังนี้
(เงื่อนไข)? ค่าที่จะกำหนดให้เมื่อเป็นจริง : ค่าที่จะกำหนดให้เมื่อเป็นเท็จ ;
เรามักจะใช้รูปแบบ ternary operator ในการกำหนดค่าหลังจากตรวจสอบเงื่อนไขให้กับตัวแปร ตัวอย่างเช่น
switch
switch เป็นคำสั่งที่ใช้ในการสร้างประโยคคำสั่งแบบมีเงื่อนไขอีกรูปแบบหนึ่ง โดยเป็นคำสั่งที่ใช้ในการตรวจสอบข้อมูลของตัวแปรและเลือกชุดของประโยคคำสั่งที่เหมาะสมขึ้นมาทำงาน รูปแบบการใช้คำสั่ง switch มีดังนี้
switch (ตัวแปร) {
case ค่าที่ตรงกับตัวแปร:
ประโยคคำสั่ง;
ประโยคคำสั่ง;
break;
case ค่าที่ตรงกับตัวแปร:
ประโยคคำสั่ง;
ประโยคคำสั่ง;
break;
case ค่าที่ตรงกับตัวแปร:
ประโยคคำสั่ง;
ประโยคคำสั่ง;
break;
default:
ประโยคคำสั่ง;
ประโยคคำสั่ง;
break;
}
โดยตัวแปรที่จะนำมาตรวจสอบต้องกำหนดข้อมูลให้กับตัวแปรมาก่อน และหากค่าของตัวแปรตรงกับ case ใดก็ให้ดำเนินการด้วยชุดของประโยคคำสั่งภายใต้ case นั้น ในกรณีที่ไม่ตรงกับ case ใดๆ ชุดของประโยคคำสั่งภายใต้ default จะถูกดำเนินการ สังเกตุว่าคำสั่ง switch จะไม่ได้มีการตรวจสอบเงื่อนไขใดๆ แต่จะดูจากค่าของข้อมูลเลย หากข้อมูลตรงกับ case ใดก็ไปทำ case นั้น
ภายใต้คำสั่ง swtich จะต้องสร้างบล็อกเช่นเดียวกัน ท้ายบรรทัดของคำสั่ง case จะต้องปิดท้ายด้วยอักขระ : และทุก case รวมถึง default จะต้องปิดด้วยคำสั่ง break; เราสามารถกำหนดให้หลายๆ case ใช้ชุดประโยคคำสั่งเดียวกันได้โดยเขียน case x: case y: case z: ต่อๆกันไปในบรรทัดเดียวกัน ตัวอย่างเช่น
ประโยคคำสั่งวนซ้ำ (Iteration Statement)
เป็นประโยคคำสั่งซึ่งประกอบด้วยคีย์เวิร์ดที่เป็นคำสั่งเพื่อวนซ้ำและนิพจน์ที่ให้ผลลัพธ์ทางตรรกศาตร์เพื่อตรวจสอบว่าจะเลิกดำเนินการวนซ้ำเมื่อใด การทำคำสั่งวนซ้ำมักจะเรียกว่าลูป (loop)
คำสั่ง for
คำสั่ง for เป็นคำสั่งวนซ้ำที่ใช้นิพจน์ทางคณิตศาสตร์และตรรกศาสตร์ในการกำหนดจำนวนครั้งที่ต้องการวนซ้ำ โดยรูปแบบของคำสั่งมีดังนี้
for (กำหนดค่าเริ่มต้น; เงื่อนไขในการตรวจสอบ; เงื่อนไขการเปลี่ยนแปลงค่า) {
ประโยคคำสั่ง;
ประโยคคำสั่ง;
ประโยคคำสั่ง;
}
การกำหนดค่าเริ่มต้นเป็นการประกาศตัวแปรพร้อมกับกำหนดค่าที่เป็นตัวเลขตั้งต้นให้กับตัวแปร เงื่อนไขในการตรวจสอบเป็นการเปรียบเทียบเพื่อหาผลลัพธ์ทางตรรกศาสตร์ว่าค่าในตัวแปรเป็นจริงหรือเป็นเท็จโดยหากเงื่อนไขยังเป็นจริงจะทำการวนซ้ำต่อ เงื่อนไขในการเปลี่ยนแปลงค่าเป็นการดำเนินการกับตัวแปรเพื่อให้เปลี่ยนค่าด้วยวิธีการทางคณิตศาสตร์
การดำเนินการของคำสั่งจะเริ่มจากตรวจสอบค่าตัวแปรซึ่งหากเงื่อนไขยังเป็นจริงก็จะเปลี่ยนแปลงค่าตัวแปรตามวิธีการที่กำหนดและดำเนินการประโยคคำสั่งภายในบล็อก ดังนั้นหากตรวจสอบพบว่าเงื่อนไขเป็นเท็จตั้งแต่ครั้งแรกจะไม่มีดำเนินการประโยคคำสั่งในบล็อกเลยแม้เพียงครั้งเดียว
ตัวอย่างด้านล่างเป็นการใช้คำสั่ง for เพื่อพิมพ์ค่าตัวแปรโดยกำหนดค่าเริ่มต้นของตัวแปรเป็น 0 เงื่อนไขในการวนซ้ำคือตัวแปรต้องไม่เกิน 10 และปรับปรุงข้อมูลตัวแปรโดยการบวกเพิ่มทีละ 1
ตัวแปรที่เรากำหนดในคำสั่ง for มักจะใช้ตัวอักษร i หรือ j หรือ k ซึ่งเมื่อคำสั่งวนซ้ำยุติการทำงานแล้วตัวแปรเหล่านี้ก็จะถูกเลิกใช้งาน การกำหนดเงื่อนไขและการเปลี่ยนแปลงค่าต้องดูให้ดีว่าไม่ทำให้เกิดการทำงานแบบไม่รู้จบ โดยมากเรามักจะพบการใช้คำสั่ง for เพื่อการนับจำนวนครั้งในการวนซ้ำ เช่น for (i=1; i < 10; 1++) เราสามารถนับถอยหลังก็ได้ เช่น for (i=10; i > 0; 1–) และเราสามารถใช้คำสั่ง if เพื่อตรวจสอบเงื่อนไขและใช้คำสั่ง break; เพื่อยกเลิกการทำงานของคำสั่ง for ก่อนที่จะทำงานครบตามเงื่อนไขได้ ตามตัวอย่างด้านล่างโปรแกรมจะพิมพ์แค่เลข 4 แล้วหยุดโดยไม่ต้องรอถึงเลข 9
คำสั่ง for-each
ในจาวาเวอร์ชั่น 5 ได้เพิ่มรูปแบบพิเศษของคำสั่ง for ขึ้นมาเพื่อใช้ในการวนรอบเพื่ออ่านชุดข้อมูลในอาเรย์ String หรือ Collection โดยไม่ต้องใช้ดัชนีอ้างอิงเรียกว่า for – each โดยมีรูปแบบการใช้งานคือ
for (ชนิดข้อมูล ตัวแปรที่ใช้รับข้อมูลที่ : ชุดข้อมูล ) {
ประโยคคำสั่ง;
ประโยคคำสั่ง;
ประโยคคำสั่ง;
}
ตัวอย่างเช่น
คำสั่ง while
คำสั่ง while เป็นคำสั่งวนซ้ำที่ใช้นิพจน์ทางตรรกศาสตร์เพื่อตรวจสอบว่าจะดำเนินการวนซ้ำหรือไม่ โดยหากเงื่อนไขเป็นจริงจึงจะดำเนินการชุดประโยคคำสั่งภายใต้บล็อก โดยรูปแบบของคำสั่งมีดังนี้
while (นิพจน์ตรรกศาสตร์){
ประโยคคำสั่ง;
ประโยคคำสั่ง;
ประโยคคำสั่ง;
}
เราสามารถใช้คำสั่ง break; เพื่อออกจากการวนซ้ำก่อนที่จะจบตามเงื่อนไขได้เช่นเดียวกับคำสั่ง for ตัวอย่างด้านล่างเป็นการเขียนโปรแกรมให้ทำงานแบบเดียวกับตัวอย่างในคำสั่ง for
สังเกตุว่าการประกาศตัวแปรไม่ได้เป็นส่วนหนึ่งของคำสั่ง while ดังนั้นหากเงื่อนไขไม่เป็นจริงตั้งแต่แรก ชุดของประโยคคำสั่งภายในบล็อกของ while จะไม่ถูกดำเนินการเลย
คำสั่ง do-while
คำสั่ง do-while เป็นคำสั่งวนซ้ำที่ใช้นิพจน์ทางตรรกศาสตร์เพื่อตรวจสอบว่าจะดำเนินการวนซ้ำหรือไม่ สังเกตุว่าคำสั่ง do-while จะมีการดำเนินการชุดประโยคคำสั่งอย่างน้อย 1 ครั้งเพราะการตรวจสอบเงื่อนไขอยู่ที่ด้านท้ายของบล็อก โดยรูปแบบของคำสั่งมีดังนี้
do {
ประโยคคำสั่ง;
ประโยคคำสั่ง;
ประโยคคำสั่ง;
} while (นิพจน์ตรรกศาสตร์);
เราสามารถใช้คำสั่ง break; เพื่อออกจากการวนซ้ำก่อนที่จะจบตามเงื่อนไขได้เช่นเดียวกับคำสั่ง for ตัวอย่างด้านล่างเป็นการเขียนโปรแกรมให้เงื่อนไขเป็นเท็จตั้งแต่แรกเพื่อแสดงให้เห็นว่ามีการดำเนินการชุดประโยคคำสั่งอย่างน้อย 1 ครั้ง