SlideShare a Scribd company logo
1 of 20
Download to read offline
บทที่ 3 คำสั่งควบคุมโปรแกรม
1.ตัวดำเนินทำงตรรกะ
1.1ตัวดำเนินกำรแบบสัมพันธ์ (RelationalOperators)
คือตัวดำเนิน กำรที่ทำหน้ำที่เปรียบเทียบค่ำระหว่ำงตัวแปรสองตัว หรือนิพจน์สอง
นิพจน์ โดยจะคืนค่ำเป็นจริงหรือเท็จ (Boolean)
2.2ตัวดำเนินกำรทำงตรรกศำสตร์ (Logical Operator)
เป็นตัวดำเนินกำรเกี่ยวข้องกับนิพจน์ที่สำมำรถบอกค่ำควำมจริงเป็นจริง (true) หรือ
เท็จ (false) ได้ หรือชนิดข้อมูลตรรกะ เช่น ตัวแปรประเภท boolean ผลลัพธ์ที่ได้จำกกำร
กระทำจะได้ค่ำคงที่ตรรกะ เป็น true หรือ false ตัวดำเนินกำรทำงตรรกะได้แก่เครื่องหมำย !,
&&, &, ||, |, ^ มีตัวอย่ำงกำรใช้งำนดังนี้
กำรเลือกคำสั่งแบบทำงเดียว (if statement)
ในภำษำจำวำจะใช้คำสั่ง if เลือกทำแบบทำงเดียวเพื่อจะตรวจสอบว่ำชุดคำสั่งที่ตำมมำ
จะทำหรือไม่ ในกำรทำงำนของคำสั่งคอมพิวเตอร์ จะตรวจสอบเงื่อนไขก่อน ถ้ำเงื่อนไขเป็นจริงจะ
ทำคำสั่งหรือสเตตเมนต์ ที่ตำมหลังหรือเป็นสเตตเมนต์รวมที่อยู่ในเครื่องหมำย { } แต่ถ้ำเงื่อนไข
เป็นเท็จคอมพิวเตอร์จะกระโดดข้ำมคำสั่งหรือสเตตเมนต์ตำมมำและไปทำคำสั่งหรือ สเตตเมนต์
ต่อไป รูปแบบคำสั่งเป็นดังต่อไปนี้
กำรเลือกคำสั่งแบบทำงเดียว (if statement)
รูปแบบ
If(condition) {action statement}
โดยกำรตรวจสอบเงื่อนไขจะเป็นกำรกระทำแบบบูลีน ผลลัพธ์ที่ได้ จะเป็นจริงหรือเท็จ
เท่ำนั้นถ้ำหำกมีกำรใช้ตัวดำเนินกำรจะใช้ตัวดำเนินกำรที่ให้ผลลัพธ์เป็นแบบบูลีน สำหรับกำร
ทำงำนของคำสั่ง if สำรถเขียนเป็นผังงำนได้ดังนี้
คำสั่งเลือกทำอย่ำงใดอย่ำงหนึ่ง ( if-else )
จำกคำสั่ง if ที่ผ่ำนมำจะใช้ในกำรเขียนโปรแกรมที่ใช้ทดสอบว่ำจะเลือกทำหรือไม่
ถ้ำเงื่อนไขเป็นจริงจะทำคำสั่งหรือสเตตเมนต์หลัง if ในกรณีที่คอมพิวเตอร์ต้องเลือกทำอย่ำงใด
อย่ำงหนึ่ง โดยตรวจสอบเงื่อนไขที่กำหนดจะใช้คำสั่ง if-else ถ้ำเงื่อนไขเป็นจริงจะทำคำสั่ง
หลัง if แต่ถ้ำเงื่อนไขเป็นเท็จจะทำคำสั่งหลัง else โดยนิพจน์กำรตรวจสอบเงื่อนไขที่
ตำมหลัง if จะเป็นข้อมูลทำงตรรก รูปแบบคำสั่งเป็นดังนี้
คำสั่งเลือกทำอย่ำงใดอย่ำงหนึ่ง ( if-else )
กำรทำงำนของคำสั่งนี้สำมำรถเขียนผังงำนได้ดังนี้
กำรใช้คำสั่ง if-else-if
กำรเขียนคำสั่งแบบเลือกทำสองทำงที่ใช้ if-else นั้นจะพบว่ำชุดคำสั่ง ที่อยู่
หลัง else จะถูกทำงำน ถ้ำหำกประโยคเงื่อนไขของ if เป็นเท็จ แต่ถ้ำต้องกำรให้ตรวจสอบ
เงื่อนไขอื่นๆ ก่อนที่จะทำชุดคำสั่งหลัง if-else-if แทน ตัวอย่ำงเช่น ถ้ำหำกต้องกำรเขียน
โปรแกรมในกำรคิดผลสอบของนักเรียน โดยมีเงื่อนไขเป็นถ้ำคะแนนมำกกว่ำ 50 ให้ผ่ำน แต่ถ้ำ
คะแนน ไม่มำกกว่ำ 50 ให้ตก สำมำรถนำคำสั่ง if-else มำใช้ได้ โดยเขียนดังนี้
กำรใช้คำสั่ง if-else-if
สำหรับงำนบำงประเภทถ้ำหำกตรวจสอบเงื่อนไขแล้วได้ผลเป็นเท็จ จำกนั้น
ต้องกำรให้ตรวจสอบเงื่อนไขอีกก็ทำได้เช่นกัน เช่น ถ้ำหำกในกำรคิดผลสอบแล้ว
ต้องกำรให้ผลลัพธ์ออกมำเป็นเกรดโดยมีเงื่อนไขดังนี้
กำรใช้คำสั่ง if-else-if
กำรใช้คำสั่ง if-else-if
จำกผังงำนจะพบว่ำถ้ำตรวจสอบเงื่อนไขแล้วได้ผลลัพธ์เป็นเท็จจะต้องมีกำร
ตรวจสอบเงื่อนไขในครั้งต่อไป กำรทำงำนลักษณะนี้ จะใช้คำสั่ง if-else-if โดยมีรูปแบบ
ดังนี้
กำรเลือกทำแบบ switch
กำรเขียนโปรแกรมที่ต้องมีกำรเลือกทำ
หลำยทำงเลือก เรำสำมำรถนำประโยคคำสั่ง if-
else มำซ้อนกันได้ แต่ถ้ำเงื่อนไขที่ต้องตัดสินใจ
ขึ้ น กั บ ตั ว แ ป ร เ ดี ย ว เ ร ำ สำ ม ำ ร ถ ใ ช้
คำสั่ง switch..case แทนได้ คำสั่ง switch นี้มี
ควำมซับซ้อนน้อยกว่ำกำรนำ if-else มำเขียนซ้อน
กัน และสำมำรถเปลี่ยนเงื่อนไขได้ง่ำยอีกด้วย
ตัวอย่ำงเช่น ถ้ำเขียนโปรแกรมเป็นลักษณะเมนู
ดังต่อไปนี้
และให้ผู้ใช้โปรแกรมเลือกวิธีกำรคำนวณเข้ำไปโดยป้อน
ค่ำอินพุตเข้ำไป เรำสำมำรถเขียนโปรแกรมโดยนำค่ำอินพุตที่ได้รับเข้ำ
ไปเก็บไว้ในตัวแปรตัวหนึ่ง และใช้คำสั่ง switch เลือกว่ำมีค่ำเท่ำกับ
ค่ำใด (1,2,3,4) จำกนั้นให้ไปทำงำนตำมที่เลือก ประโยค
คำสั่ง switch..case มีรูปแบบดังนี้
กำรเลือกทำแบบ switch
คำสั่ง switch นี้จะนำค่ำใน variable มำตรวจสอบว่ำเท่ำกับค่ำคงที่ค่ำใดหลัง case จำกนั้น
โปรแกรมจะไปทำ statement หลังค่ำคงที่ตัวนั้น และออกจำก switch เมื่อถึงคำสั่ง break แต่ถ้ำไม่เท่ำค่ำคงที่
ค่ำใดเลย โปรแกรมจะไปทำ statement หลัง default แต่ถ้ำหำกไม่มี คำสั่ง break โปรแกรมจะทำงำนตำม
คำสั่งทุกๆ case แม้ว่ำตัวแปรใน switch จะไม่ตรงกับ case สำหรับค่ำที่ใช้ตรวจสอบจะเป็นตัวแปรนิพจน์ หรือ
ฟังก์ชันก็ได้ สำหรับในแต่ละcase สำมำรถมีคำสั่งได้มำกกว่ำหนึ่งคำสั่งหรืออำจไม่มีก็ได้ โดยถ้ำไม่มีคำสั่งโปรแกรม
จะไปทำงำนใน case ถัดไป ค่ำคงที่หลัง case จะต้องเป็นแบบchar, byte, short หรือ int แล้วตำมด้วย
เครื่องหมำยโคลอน (:)
กำรควบคุมกำรทำซ้ำด้วยคำสั่ง for
กำรซ้ำแบบ for หรือ loop for จะเป็นกำรให้โปรแกรมทำซ้ำจนกว่ำค่ำตัวแปร
จะครบตำมที่ตั้งไว้หรือทำตำมเงื่อนไขที่กำหนด เริ่มแรกโปรแกรมจะกำหนดค่ำเริ่มต้น
ให้กับตัวแปรเริ่มต้น (initialization) จำกนั้นจะตรวจสอบเงื่อนไข ถ้ำหำกเงื่อนไขเป็น
จริงจะทำสเตตเมนต์ที่ตำมมำ และปรับค่ำตัวแปรควบคุม โดยรูปแบบของคำสั่งเป็นดังนี้
กำรควบคุมกำรทำซ้ำด้วยคำสั่ง for
รูปแบบ
ในส่วนของ condition บำงครั้งจะเรียกตัวแปรควบคุมลูป ( loop control variable)
เริ่มต้นคำสั่งจะทำส่วนกำหนดค่ำเริ่มต้น (initial value)จำกนั้นจะตรวจสอบว่ำเงื่อนไขเป็นจริงหรือไม่
ถ้ำเงื่อนไขเป็นจริงจะทำตำมสเตตเมนต์ที่จะทำซ้ำแล้วกลับมำทำส่วน update ซึ่งส่วนมำกแล้วจะเป็นกำรเพิ่มค่ำหรือลด
ค่ำตัวแปร จำกนั้นจะตรวจสอบเงื่อนไขใหม่โดยทำแบบนี้ไปจนกว่ำเงื่อนไขจะเป็นเท็จ
สเตตเมนต์ที่ทำซ้ำอำจเป็นสเตตเมนต์รวม(CompoundStatement) ก็ได้ แต่ต้องอยู่ภำยในเครื่องหมำย { กับ }
สำหรับในส่วนของกำรกำหนดค่ำเริ่มต้น และ update มักจะเขียนเป็นคำสั่งเดียว แต่ถ้ำหำกต้องกำรใช้หลำยคำสั่งจะใช้
เครื่องหมำย comma คั่นระหว่ำงคำสั่ง ตัวอย่ำงเช่น ถ้ำเขียนคำสั่งดังต่อไป
กำรควบคุมกำรทำซ้ำด้วยคำสั่ง for
เริ่มโปรแกรมจะใส่ค่ำเริ่มต้น 1 ลงในตัวแปร number จำกนั้นจะทดสอบเงื่อนไขว่ำเงื่อนไขเป็นจริงหรือไม่ ถ้ำ
เป็นจริงจะทำสเตตเมนต์และเพิ่มค่ำ number ขึ้นหนึ่งค่ำ
ในกำรเพิ่มค่ำให้กับตัวแปรควบคุมจะเพิ่มขึ้นเป็นลำดับ โดยอำจเป็นตัวเลข 1,2,3,… หรืออักษร ‘A’,’B’,’C’, ก็ได้ดังนั้น
กำรประกำศประเภทของตัวแปรควบคุมจะต้องให้สอดคล้องกับค่ำของข้อมูลด้วย ถ้ำหำกเขียนคำสั่ง for ดังต่อไปนี้
กำรควบคุมกำรทำซ้ำด้วยคำสั่ง for
โปรแกรมจะพิมพ์ค่ำ counter ตั้งแต่ 1 ถึง 10 โดยเริ่มแรกใส่ค่ำให้กับตัวแปร counter
ซึ่งเป็นตัวแปรเริ่มต้นก่อน จำกนั้นจะตรวจสอบเงื่อนไขว่ำ counter น้อยกว่ำหรือเท่ำกับ 10 จริง
หรือไม่ ถ้ำจริงจะพิมพ์ค่ำใน counter และเพิ่มค่ำ counter ขึ้นอีกหนึ่งค่ำ จำกนั้นจะตรวจสอบ
เงื่อนไขใหม่ โดยกำรทำงำนสำมำรถเขียนผังงำนได้ดังนี้
ลูปซ้อนลูป (Nested Loops)
ในกำรเขียนโปรแกรมสำมำรถนำคำสั่งลูปแบบต่ำงๆ ให้มำทำงำนซ้อนกันได้เรียกว่ำลูปแบบซ้อนลูปดัง
ตัวอย่ำงต่อไปนี้
Public class Nestedloop1 {
Public static void main(String[ ] args)
{
for(int i = 1; i < = 3; i ++)
for(int j = 1; j < = 3; j ++)
System.out.print(j + “ “);
}
}
จำกตัวอย่ำงโปรแกรมลูปแรกจะเป็นลูปของตัวแปร I โดยภำยในลูปจะทำลูปของตัวแปร j
จำนวน 3 ครั้ง ทำให้กำรทำงำน System.out.print (j+ “ “) มีกำรทำงำนทั้งหมด 9 ครั้ง
คำสั่ง break และ continue
คำสั่งนี้สำมำรถใช้งำนร่วมกับ while , for , do/while หรือ switch ได้ สำหรับคำสั่งที่ทำงำนตรงกันข้ำม
กับ คำสั่ง break คือคำสั่ง continue ซึ่งสำมำรถใช้ได้ใน while , for หรือ do/while ได้เช่นกัน เมื่อโปรแกรม
ทำงำนมำถึงคำสั่งcontinue จะทำลูปต่อไปโดยไม่ทำสเตตเมนต์ที่ตำมหลัง continue
ข้อควรระวังในกำรใช้คำสั่งทำซ้ำ
ในกำรเขียนโปรแกรมทำลูปมักจะมีข้อผิดพลำดเกิดขึ้นเสมอ โดยโปรแกรมที่เขียนขึ้น
จะคอมไพล์ผ่ำน แต่จะทำงำนไม่ถูกต้องตำมที่ต้องกำร ข้อผิดพลำดนี้เรียกว่ำlogicerror ซึ่งโดยทั่วไป
ในกำรทำลูปแล้วจะมีข้อผิดพลำดอยู่ 4 ประกำรคือ
1.กำรกำหนดค่ำเริ่มต้นในกำรทำลูป
2.กำรทดสอบเงื่อนไขก่อนกำรทำลูป
3.ข้อผิดพลำดภำยในโครงสร้ำงของลูป
4.กำรเขียนสเตตเมนต์ปรับค่ำตัวควบคุมลูป
จบการนาเสนอ

More Related Content

What's hot (7)

ฟังก์ชั่น break
ฟังก์ชั่น breakฟังก์ชั่น break
ฟังก์ชั่น break
 
Unit7
Unit7Unit7
Unit7
 
Unit10
Unit10Unit10
Unit10
 
Unit9
Unit9Unit9
Unit9
 
Python101
Python101Python101
Python101
 
Unit11
Unit11Unit11
Unit11
 
Unit8
Unit8Unit8
Unit8
 

Similar to บทที่ 3 คำสั่งควบคุมโปรแกรม

งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1Janë Janejira
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1Pornpimon Aom
 
คำสั่งควบคุมโปรแกรม
คำสั่งควบคุมโปรแกรมคำสั่งควบคุมโปรแกรม
คำสั่งควบคุมโปรแกรมJK133
 
การควบคุมทิศทางการทำงานของโปรแกรม
การควบคุมทิศทางการทำงานของโปรแกรมการควบคุมทิศทางการทำงานของโปรแกรม
การควบคุมทิศทางการทำงานของโปรแกรมkorn27122540
 
ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม.6.1
ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม.6.1ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม.6.1
ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม.6.1Little Tukta Lita
 
การเขียนคำสั่งควบคุมแบบวนซ้ำ
การเขียนคำสั่งควบคุมแบบวนซ้ำการเขียนคำสั่งควบคุมแบบวนซ้ำ
การเขียนคำสั่งควบคุมแบบวนซ้ำToey Sunisa
 
ผังงาน
ผังงานผังงาน
ผังงานjutamat
 
ผังงาน
ผังงานผังงาน
ผังงานjutamat
 
ผังงาน
ผังงานผังงาน
ผังงานpumpuiza
 
ผังงาน
ผังงานผังงาน
ผังงานjutamat
 
ผังงาน (Flowchart)
ผังงาน (Flowchart)ผังงาน (Flowchart)
ผังงาน (Flowchart)Theruangsit
 
9789740330820
97897403308209789740330820
9789740330820CUPress
 

Similar to บทที่ 3 คำสั่งควบคุมโปรแกรม (20)

งานทำ Blog บทที่ 6
งานทำ Blog บทที่ 6งานทำ Blog บทที่ 6
งานทำ Blog บทที่ 6
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1
 
คำสั่งควบคุมโปรแกรม
คำสั่งควบคุมโปรแกรมคำสั่งควบคุมโปรแกรม
คำสั่งควบคุมโปรแกรม
 
การควบคุมทิศทางการทำงานของโปรแกรม
การควบคุมทิศทางการทำงานของโปรแกรมการควบคุมทิศทางการทำงานของโปรแกรม
การควบคุมทิศทางการทำงานของโปรแกรม
 
ตัวดำเนินการ
ตัวดำเนินการตัวดำเนินการ
ตัวดำเนินการ
 
11
1111
11
 
ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม.6.1
ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม.6.1ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม.6.1
ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม.6.1
 
งานทำBlog บทที่ 4
งานทำBlog บทที่ 4งานทำBlog บทที่ 4
งานทำBlog บทที่ 4
 
3.4 ตัวดำเนินการและนิพจน์
3.4 ตัวดำเนินการและนิพจน์3.4 ตัวดำเนินการและนิพจน์
3.4 ตัวดำเนินการและนิพจน์
 
งานทำBlog บทที่ 4
งานทำBlog บทที่ 4งานทำBlog บทที่ 4
งานทำBlog บทที่ 4
 
การเขียนคำสั่งควบคุมแบบวนซ้ำ
การเขียนคำสั่งควบคุมแบบวนซ้ำการเขียนคำสั่งควบคุมแบบวนซ้ำ
การเขียนคำสั่งควบคุมแบบวนซ้ำ
 
ผังงาน
ผังงานผังงาน
ผังงาน
 
ผังงาน
ผังงานผังงาน
ผังงาน
 
ผังงาน
ผังงานผังงาน
ผังงาน
 
ผังงาน
ผังงานผังงาน
ผังงาน
 
ฟังก์ชั่น Switch
ฟังก์ชั่น Switchฟังก์ชั่น Switch
ฟังก์ชั่น Switch
 
ผังงาน (Flowchart)
ผังงาน (Flowchart)ผังงาน (Flowchart)
ผังงาน (Flowchart)
 
9789740330820
97897403308209789740330820
9789740330820
 
Java intro
Java introJava intro
Java intro
 

More from Sutinun Goodour

การเขียนคำสั่งควบคุม แบบมีทางเลือก
การเขียนคำสั่งควบคุม แบบมีทางเลือกการเขียนคำสั่งควบคุม แบบมีทางเลือก
การเขียนคำสั่งควบคุม แบบมีทางเลือกSutinun Goodour
 
นวัตกรรมเพื่อโลกอนาคต
นวัตกรรมเพื่อโลกอนาคตนวัตกรรมเพื่อโลกอนาคต
นวัตกรรมเพื่อโลกอนาคตSutinun Goodour
 
นวัตกรรมเพื่อโลกอนาคต
นวัตกรรมเพื่อโลกอนาคตนวัตกรรมเพื่อโลกอนาคต
นวัตกรรมเพื่อโลกอนาคตSutinun Goodour
 

More from Sutinun Goodour (6)

การเขียนคำสั่งควบคุม แบบมีทางเลือก
การเขียนคำสั่งควบคุม แบบมีทางเลือกการเขียนคำสั่งควบคุม แบบมีทางเลือก
การเขียนคำสั่งควบคุม แบบมีทางเลือก
 
นวัตกรรมเพื่อโลกอนาคต
นวัตกรรมเพื่อโลกอนาคตนวัตกรรมเพื่อโลกอนาคต
นวัตกรรมเพื่อโลกอนาคต
 
นวัตกรรมเพื่อโลกอนาคต
นวัตกรรมเพื่อโลกอนาคตนวัตกรรมเพื่อโลกอนาคต
นวัตกรรมเพื่อโลกอนาคต
 
งาน It news
งาน It newsงาน It news
งาน It news
 
IT News
IT NewsIT News
IT News
 
IT News
IT NewsIT News
IT News
 

บทที่ 3 คำสั่งควบคุมโปรแกรม

  • 2. 1.ตัวดำเนินทำงตรรกะ 1.1ตัวดำเนินกำรแบบสัมพันธ์ (RelationalOperators) คือตัวดำเนิน กำรที่ทำหน้ำที่เปรียบเทียบค่ำระหว่ำงตัวแปรสองตัว หรือนิพจน์สอง นิพจน์ โดยจะคืนค่ำเป็นจริงหรือเท็จ (Boolean) 2.2ตัวดำเนินกำรทำงตรรกศำสตร์ (Logical Operator) เป็นตัวดำเนินกำรเกี่ยวข้องกับนิพจน์ที่สำมำรถบอกค่ำควำมจริงเป็นจริง (true) หรือ เท็จ (false) ได้ หรือชนิดข้อมูลตรรกะ เช่น ตัวแปรประเภท boolean ผลลัพธ์ที่ได้จำกกำร กระทำจะได้ค่ำคงที่ตรรกะ เป็น true หรือ false ตัวดำเนินกำรทำงตรรกะได้แก่เครื่องหมำย !, &&, &, ||, |, ^ มีตัวอย่ำงกำรใช้งำนดังนี้
  • 3. กำรเลือกคำสั่งแบบทำงเดียว (if statement) ในภำษำจำวำจะใช้คำสั่ง if เลือกทำแบบทำงเดียวเพื่อจะตรวจสอบว่ำชุดคำสั่งที่ตำมมำ จะทำหรือไม่ ในกำรทำงำนของคำสั่งคอมพิวเตอร์ จะตรวจสอบเงื่อนไขก่อน ถ้ำเงื่อนไขเป็นจริงจะ ทำคำสั่งหรือสเตตเมนต์ ที่ตำมหลังหรือเป็นสเตตเมนต์รวมที่อยู่ในเครื่องหมำย { } แต่ถ้ำเงื่อนไข เป็นเท็จคอมพิวเตอร์จะกระโดดข้ำมคำสั่งหรือสเตตเมนต์ตำมมำและไปทำคำสั่งหรือ สเตตเมนต์ ต่อไป รูปแบบคำสั่งเป็นดังต่อไปนี้
  • 4. กำรเลือกคำสั่งแบบทำงเดียว (if statement) รูปแบบ If(condition) {action statement} โดยกำรตรวจสอบเงื่อนไขจะเป็นกำรกระทำแบบบูลีน ผลลัพธ์ที่ได้ จะเป็นจริงหรือเท็จ เท่ำนั้นถ้ำหำกมีกำรใช้ตัวดำเนินกำรจะใช้ตัวดำเนินกำรที่ให้ผลลัพธ์เป็นแบบบูลีน สำหรับกำร ทำงำนของคำสั่ง if สำรถเขียนเป็นผังงำนได้ดังนี้
  • 5. คำสั่งเลือกทำอย่ำงใดอย่ำงหนึ่ง ( if-else ) จำกคำสั่ง if ที่ผ่ำนมำจะใช้ในกำรเขียนโปรแกรมที่ใช้ทดสอบว่ำจะเลือกทำหรือไม่ ถ้ำเงื่อนไขเป็นจริงจะทำคำสั่งหรือสเตตเมนต์หลัง if ในกรณีที่คอมพิวเตอร์ต้องเลือกทำอย่ำงใด อย่ำงหนึ่ง โดยตรวจสอบเงื่อนไขที่กำหนดจะใช้คำสั่ง if-else ถ้ำเงื่อนไขเป็นจริงจะทำคำสั่ง หลัง if แต่ถ้ำเงื่อนไขเป็นเท็จจะทำคำสั่งหลัง else โดยนิพจน์กำรตรวจสอบเงื่อนไขที่ ตำมหลัง if จะเป็นข้อมูลทำงตรรก รูปแบบคำสั่งเป็นดังนี้
  • 6. คำสั่งเลือกทำอย่ำงใดอย่ำงหนึ่ง ( if-else ) กำรทำงำนของคำสั่งนี้สำมำรถเขียนผังงำนได้ดังนี้
  • 7. กำรใช้คำสั่ง if-else-if กำรเขียนคำสั่งแบบเลือกทำสองทำงที่ใช้ if-else นั้นจะพบว่ำชุดคำสั่ง ที่อยู่ หลัง else จะถูกทำงำน ถ้ำหำกประโยคเงื่อนไขของ if เป็นเท็จ แต่ถ้ำต้องกำรให้ตรวจสอบ เงื่อนไขอื่นๆ ก่อนที่จะทำชุดคำสั่งหลัง if-else-if แทน ตัวอย่ำงเช่น ถ้ำหำกต้องกำรเขียน โปรแกรมในกำรคิดผลสอบของนักเรียน โดยมีเงื่อนไขเป็นถ้ำคะแนนมำกกว่ำ 50 ให้ผ่ำน แต่ถ้ำ คะแนน ไม่มำกกว่ำ 50 ให้ตก สำมำรถนำคำสั่ง if-else มำใช้ได้ โดยเขียนดังนี้
  • 11. กำรเลือกทำแบบ switch กำรเขียนโปรแกรมที่ต้องมีกำรเลือกทำ หลำยทำงเลือก เรำสำมำรถนำประโยคคำสั่ง if- else มำซ้อนกันได้ แต่ถ้ำเงื่อนไขที่ต้องตัดสินใจ ขึ้ น กั บ ตั ว แ ป ร เ ดี ย ว เ ร ำ สำ ม ำ ร ถ ใ ช้ คำสั่ง switch..case แทนได้ คำสั่ง switch นี้มี ควำมซับซ้อนน้อยกว่ำกำรนำ if-else มำเขียนซ้อน กัน และสำมำรถเปลี่ยนเงื่อนไขได้ง่ำยอีกด้วย ตัวอย่ำงเช่น ถ้ำเขียนโปรแกรมเป็นลักษณะเมนู ดังต่อไปนี้ และให้ผู้ใช้โปรแกรมเลือกวิธีกำรคำนวณเข้ำไปโดยป้อน ค่ำอินพุตเข้ำไป เรำสำมำรถเขียนโปรแกรมโดยนำค่ำอินพุตที่ได้รับเข้ำ ไปเก็บไว้ในตัวแปรตัวหนึ่ง และใช้คำสั่ง switch เลือกว่ำมีค่ำเท่ำกับ ค่ำใด (1,2,3,4) จำกนั้นให้ไปทำงำนตำมที่เลือก ประโยค คำสั่ง switch..case มีรูปแบบดังนี้
  • 12. กำรเลือกทำแบบ switch คำสั่ง switch นี้จะนำค่ำใน variable มำตรวจสอบว่ำเท่ำกับค่ำคงที่ค่ำใดหลัง case จำกนั้น โปรแกรมจะไปทำ statement หลังค่ำคงที่ตัวนั้น และออกจำก switch เมื่อถึงคำสั่ง break แต่ถ้ำไม่เท่ำค่ำคงที่ ค่ำใดเลย โปรแกรมจะไปทำ statement หลัง default แต่ถ้ำหำกไม่มี คำสั่ง break โปรแกรมจะทำงำนตำม คำสั่งทุกๆ case แม้ว่ำตัวแปรใน switch จะไม่ตรงกับ case สำหรับค่ำที่ใช้ตรวจสอบจะเป็นตัวแปรนิพจน์ หรือ ฟังก์ชันก็ได้ สำหรับในแต่ละcase สำมำรถมีคำสั่งได้มำกกว่ำหนึ่งคำสั่งหรืออำจไม่มีก็ได้ โดยถ้ำไม่มีคำสั่งโปรแกรม จะไปทำงำนใน case ถัดไป ค่ำคงที่หลัง case จะต้องเป็นแบบchar, byte, short หรือ int แล้วตำมด้วย เครื่องหมำยโคลอน (:)
  • 13. กำรควบคุมกำรทำซ้ำด้วยคำสั่ง for กำรซ้ำแบบ for หรือ loop for จะเป็นกำรให้โปรแกรมทำซ้ำจนกว่ำค่ำตัวแปร จะครบตำมที่ตั้งไว้หรือทำตำมเงื่อนไขที่กำหนด เริ่มแรกโปรแกรมจะกำหนดค่ำเริ่มต้น ให้กับตัวแปรเริ่มต้น (initialization) จำกนั้นจะตรวจสอบเงื่อนไข ถ้ำหำกเงื่อนไขเป็น จริงจะทำสเตตเมนต์ที่ตำมมำ และปรับค่ำตัวแปรควบคุม โดยรูปแบบของคำสั่งเป็นดังนี้
  • 14. กำรควบคุมกำรทำซ้ำด้วยคำสั่ง for รูปแบบ ในส่วนของ condition บำงครั้งจะเรียกตัวแปรควบคุมลูป ( loop control variable) เริ่มต้นคำสั่งจะทำส่วนกำหนดค่ำเริ่มต้น (initial value)จำกนั้นจะตรวจสอบว่ำเงื่อนไขเป็นจริงหรือไม่ ถ้ำเงื่อนไขเป็นจริงจะทำตำมสเตตเมนต์ที่จะทำซ้ำแล้วกลับมำทำส่วน update ซึ่งส่วนมำกแล้วจะเป็นกำรเพิ่มค่ำหรือลด ค่ำตัวแปร จำกนั้นจะตรวจสอบเงื่อนไขใหม่โดยทำแบบนี้ไปจนกว่ำเงื่อนไขจะเป็นเท็จ สเตตเมนต์ที่ทำซ้ำอำจเป็นสเตตเมนต์รวม(CompoundStatement) ก็ได้ แต่ต้องอยู่ภำยในเครื่องหมำย { กับ } สำหรับในส่วนของกำรกำหนดค่ำเริ่มต้น และ update มักจะเขียนเป็นคำสั่งเดียว แต่ถ้ำหำกต้องกำรใช้หลำยคำสั่งจะใช้ เครื่องหมำย comma คั่นระหว่ำงคำสั่ง ตัวอย่ำงเช่น ถ้ำเขียนคำสั่งดังต่อไป
  • 15. กำรควบคุมกำรทำซ้ำด้วยคำสั่ง for เริ่มโปรแกรมจะใส่ค่ำเริ่มต้น 1 ลงในตัวแปร number จำกนั้นจะทดสอบเงื่อนไขว่ำเงื่อนไขเป็นจริงหรือไม่ ถ้ำ เป็นจริงจะทำสเตตเมนต์และเพิ่มค่ำ number ขึ้นหนึ่งค่ำ ในกำรเพิ่มค่ำให้กับตัวแปรควบคุมจะเพิ่มขึ้นเป็นลำดับ โดยอำจเป็นตัวเลข 1,2,3,… หรืออักษร ‘A’,’B’,’C’, ก็ได้ดังนั้น กำรประกำศประเภทของตัวแปรควบคุมจะต้องให้สอดคล้องกับค่ำของข้อมูลด้วย ถ้ำหำกเขียนคำสั่ง for ดังต่อไปนี้
  • 16. กำรควบคุมกำรทำซ้ำด้วยคำสั่ง for โปรแกรมจะพิมพ์ค่ำ counter ตั้งแต่ 1 ถึง 10 โดยเริ่มแรกใส่ค่ำให้กับตัวแปร counter ซึ่งเป็นตัวแปรเริ่มต้นก่อน จำกนั้นจะตรวจสอบเงื่อนไขว่ำ counter น้อยกว่ำหรือเท่ำกับ 10 จริง หรือไม่ ถ้ำจริงจะพิมพ์ค่ำใน counter และเพิ่มค่ำ counter ขึ้นอีกหนึ่งค่ำ จำกนั้นจะตรวจสอบ เงื่อนไขใหม่ โดยกำรทำงำนสำมำรถเขียนผังงำนได้ดังนี้
  • 17. ลูปซ้อนลูป (Nested Loops) ในกำรเขียนโปรแกรมสำมำรถนำคำสั่งลูปแบบต่ำงๆ ให้มำทำงำนซ้อนกันได้เรียกว่ำลูปแบบซ้อนลูปดัง ตัวอย่ำงต่อไปนี้ Public class Nestedloop1 { Public static void main(String[ ] args) { for(int i = 1; i < = 3; i ++) for(int j = 1; j < = 3; j ++) System.out.print(j + “ “); } } จำกตัวอย่ำงโปรแกรมลูปแรกจะเป็นลูปของตัวแปร I โดยภำยในลูปจะทำลูปของตัวแปร j จำนวน 3 ครั้ง ทำให้กำรทำงำน System.out.print (j+ “ “) มีกำรทำงำนทั้งหมด 9 ครั้ง
  • 18. คำสั่ง break และ continue คำสั่งนี้สำมำรถใช้งำนร่วมกับ while , for , do/while หรือ switch ได้ สำหรับคำสั่งที่ทำงำนตรงกันข้ำม กับ คำสั่ง break คือคำสั่ง continue ซึ่งสำมำรถใช้ได้ใน while , for หรือ do/while ได้เช่นกัน เมื่อโปรแกรม ทำงำนมำถึงคำสั่งcontinue จะทำลูปต่อไปโดยไม่ทำสเตตเมนต์ที่ตำมหลัง continue
  • 19. ข้อควรระวังในกำรใช้คำสั่งทำซ้ำ ในกำรเขียนโปรแกรมทำลูปมักจะมีข้อผิดพลำดเกิดขึ้นเสมอ โดยโปรแกรมที่เขียนขึ้น จะคอมไพล์ผ่ำน แต่จะทำงำนไม่ถูกต้องตำมที่ต้องกำร ข้อผิดพลำดนี้เรียกว่ำlogicerror ซึ่งโดยทั่วไป ในกำรทำลูปแล้วจะมีข้อผิดพลำดอยู่ 4 ประกำรคือ 1.กำรกำหนดค่ำเริ่มต้นในกำรทำลูป 2.กำรทดสอบเงื่อนไขก่อนกำรทำลูป 3.ข้อผิดพลำดภำยในโครงสร้ำงของลูป 4.กำรเขียนสเตตเมนต์ปรับค่ำตัวควบคุมลูป