SlideShare a Scribd company logo
1 of 21
บทที่ 3
คำสั่งควบคุมแบบมี
ทำงเลือก
ตัวดำเนินทำงตรรกะ
1.1ตัวดำเนินกำรแบบสัมพันธ์(RelationalOperators)คือตัว
ดำเนิน กำรที่ทำหน้ำที่เปรียบเทียบค่ำระหว่ำงตัวแปรสองตัว หรือนิพจน์สองนิพจน์
โดยจะคืนค่ำเป็นจริงหรือเท็จ (Boolean)
2.2ตัวดำเนินกำรทำงตรรกศำสตร์ (Logical Operator)เป็นตัว
ดำเนินกำรเกี่ยวข้องกับนิพจน์ที่สำมำรถบอกค่ำควำมจริงเป็นจริง(true) หรือ
เท็จ (false)ได้ หรือชนิดข้อมูลตรรกะ เช่น ตัวแปรประเภท boolean ผลลัพธ์
ที่ได้จำกกำรกระทำจะได้ค่ำคงที่ตรรกะ เป็น true หรือ false ตัวดำเนินกำร
ทำงตรรกะได้แก่เครื่องหมำย !, &&, &, ||, |, ^
กำรเลือกทำแบบทำงเดียว (if statement)
ในภำษำจำวำจะใช้คำสั่ง if เลือกทำแบบทำงเดียวเพื่อจะตรวจสอบว่ำชุดคำสั่ง
ที่ตำมมำจะทำหรือไม่ ในกำรทำงำนของคำสั่งคอมพิวเตอร์จะตรวจสอบเงื่อนไข
ก่อน ถ้ำเงื่อนไขเป็นจริงจะทำคำสั่งหรือสเตตเมนต์ที่ตำมหลังหรือเป็นสเตต
เมนต์รวมที่อยู่ในเครื่องหมำย { } แต่ถ้ำเงื่อนไขเป็นเท็จคอมพิวเตอร์จะกระโดด
ข้ำมคำสั่งหรือสเตตเมนต์ตำมมำและไปทำคำสั่งหรือสเตตเมนต์ต่อไป รูปแบบ
คำสั่งเป็นดังต่อไปนี้
รูปแบบ
If(condition) {action statement}
โดยกำรตรวจสอบเงื่อนไขจะเป็นกำรกระทำแบบบูลีน ผลลัพธ์ที่ได้จะเป็นจริง
หรือเท็จเท่ำนั้นถ้ำหำกมีกำรใช้ตัวดำเนินกำรจะใช้ตัวดำเนินกำรที่ให้ผลลัพธ์
เป็นแบบบูลีน สำหรับกำรทำงำนของคำสั่ง if สำรถเขียนเป็นผังงำนได้ดังนี้
คำสั่งเลือกทำอย่ำงใดอย่ำงหนึ่ง ( if-else )
จำกคำสั่ง if ที่ผ่ำนมำจะใช้ในกำรเขียนโปรแกรมที่ใช้ทดสอบว่ำจะเลือกทำ
หรือไม่ ถ้ำเงื่อนไขเป็นจริงจะทำคำสั่งหรือสเตตเมนต์หลัง if ในกรณีที่
คอมพิวเตอร์ต้องเลือกทำอย่ำงใดอย่ำงหนึ่ง โดยตรวจสอบเงื่อนไขที่กำหนดจะใช้
คำสั่ง if-else ถ้ำเงื่อนไขเป็นจริงจะทำคำสั่งหลัง if แต่ถ้ำเงื่อนไขเป็นเท็จจะทำ
คำสั่งหลัง else โดยนิพจน์กำรตรวจสอบเงื่อนไขที่ตำมหลัง if จะเป็นข้อมูล
ทำงตรรก รูปแบบคำสั่งเป็นดังนี้
การทางานของคาสั่งนี้สามารถเขียนผังงานได้ดังนี้
กำรใช้คำสั่ง if-else-if
กำรเขียนคำสั่งแบบเลือกทำสองทำงที่ใช้ if-else นั้นจะพบว่ำชุดคำสั่งที่อยู่หลัง
else จะถูกทำงำน ถ้ำหำกประโยคเงื่อนไขของ if เป็นเท็จ แต่ถ้ำต้องกำรให้
ตรวจสอบเงื่อนไขอื่นๆ ก่อนที่จะทำชุดคำสั่งหลัง if-else-if แทน ตัวอย่ำงเช่น ถ้ำ
หำกต้องกำรเขียนโปรแกรมในกำรคิดผลสอบของนักเรียน โดยมีเงื่อนไขเป็นถ้ำ
คะแนนมำกกว่ำ 50 ให้ผ่ำน แต่ถ้ำคะแนนไม่มำกกว่ำ 50 ให้ตก สำมำรถนำคำสั่ง if-
else มำใช้ได้ โดยเขียนดังนี้
สำหรับงำนบำงประเภทถ้ำหำกตรวจสอบเงื่อนไขแล้วได้ผลเป็นเท็จ จำกนั้น
ต้องกำรให้ตรวจสอบเงื่อนไขอีกก็ทำได้เช่นกัน เช่น ถ้ำหำกในกำรคิดผลสอบ
แล้วต้องกำรให้ผลลัพธ์ออกมำเป็นเกรดโดยมีเงื่อนไขดังนี้
จำกผังงำนจะพบว่ำถ้ำตรวจสอบเงื่อนไขแล้วได้ผลลัพธ์เป็นเท็จจะต้องมีกำรตรวจสอบเงื่อนไข
ในครั้งต่อไป กำรทำงำนลักษณะนี้จะใช้คำสั่ง if-else-if โดยมีรูปแบบดังนี้
กำรเลือกทำแบบ switch
กำรเขียนโปรแกรมที่ต้องมีกำรเลือกทำหลำยทำงเลือก เรำสำมำรถนำประโยคคำสั่ง
if-else มำซ้อนกันได้แต่ถ้ำเงื่อนไขที่ต้องตัดสินใจขึ้นกับตัวแปรเดียว เรำสำมำรถ
ใช้คำสั่ง switch..case แทนได้คำสั่ง switch นี้มีควำมซับซ้อนน้อยกว่ำกำร
นำ if-else มำเขียนซ้อนกัน และสำมำรถเปลี่ยนเงื่อนไขได้ง่ำยอีกด้วย
ตัวอย่ำงเช่น ถ้ำเขียนโปรแกรมเป็นลักษณะเมนูดังต่อไปนี้
และให้ผู้ใช้โปรแกรมเลือกวิธีกำรคำนวณเข้ำไปโดยป้อนค่ำอินพุตเข้ำไป เรำสำมำรถ
เขียนโปรแกรมโดยนำค่ำอินพุตที่ได้รับเข้ำไปเก็บไว้ในตัวแปรตัวหนึ่ง และใช้คำสั่ง
switch เลือกว่ำมีค่ำเท่ำกับค่ำใด (1,2,3,4) จำกนั้นให้ไปทำงำนตำมที่เลือก
ประโยคคำสั่ง switch..case มีรูปแบบดังนี้
คำสั่ง switch นี้จะนำค่ำใน variable มำตรวจสอบว่ำเท่ำกับค่ำคงที่ค่ำใดหลัง case
จำกนั้น โปรแกรมจะไปทำ statement หลังค่ำคงที่ตัวนั้น และออกจำก switch เมื่อถึง
คำสั่ง break แต่ถ้ำไม่เท่ำค่ำคงที่ค่ำใดเลย โปรแกรมจะไปทำ statement หลัง
default แต่ถ้ำหำกไม่มี คำสั่ง break โปรแกรมจะทำงำนตำมคำสั่งทุกๆ case แม้ว่ำตัว
แปรใน switch จะไม่ตรงกับ case สำหรับค่ำที่ใช้ตรวจสอบจะเป็นตัวแปรนิพจน์ หรือ
ฟังก์ชันก็ได้ สำหรับในแต่ละcase สำมำรถมีคำสั่งได้มำกกว่ำหนึ่งคำสั่งหรืออำจไม่มีก็ได้ โดย
ถ้ำไม่มีคำสั่งโปรแกรมจะไปทำงำนใน case ถัดไป ค่ำคงที่หลัง case จะต้องเป็นแบบchar,
byte, short หรือ int แล้วตำมด้วยเครื่องหมำยโคลอน (:)
กำรควบคุมกำรทำซ้ำด้วยคำสั่ง for
กำรซ้ำแบบ for หรือ loop for จะเป็นกำรให้โปรแกรมทำซ้ำจนกว่ำค่ำตัวแปร
จะครบตำมที่ตั้งไว้หรือทำตำมเงื่อนไขที่กำหนด เริ่มแรกโปรแกรมจะกำหนดค่ำ
เริ่มต้นให้กับตัวแปรเริ่มต้น (initialization) จำกนั้นจะตรวจสอบเงื่อนไข ถ้ำ
หำกเงื่อนไขเป็นจริงจะทำสเตตเมนต์ที่ตำมมำ และปรับค่ำตัวแปรควบคุม โดย
รูปแบบของคำสั่งเป็นดังนี้รูปแบบ
ในส่วนของ condition บำงครั้งจะเรียกตัวแปรควบคุมลูป ( loop
control variable ) เริ่มต้นคำสั่งจะทำส่วนกำหนดค่ำเริ่มต้น (initial
value)จำกนั้นจะตรวจสอบว่ำเงื่อนไขเป็นจริงหรือไม่ ถ้ำเงื่อนไขเป็นจริงจะทำ
ตำมสเตตเมนต์ที่จะทำซ้ำแล้วกลับมำทำส่วน update ซึ่งส่วนมำกแล้วจะเป็น
กำรเพิ่มค่ำหรือลดค่ำตัวแปร จำกนั้นจะตรวจสอบเงื่อนไขใหม่โดยทำแบบนี้ไป
จนกว่ำเงื่อนไขจะเป็นเท็จ
สำหรับในส่วนของกำรกำหนดค่ำเริ่มต้น และupdate มักจะเขียนเป็นคำสั่งเดียว
แต่ถ้ำหำกต้องกำรใช้หลำยคำสั่งจะใช้เครื่องหมำย comma คั่นระหว่ำงคำสั่ง
ตัวอย่ำงเช่น ถ้ำเขียนคำสั่งดังต่อไปนี้
เริ่มโปรแกรมจะใส่ค่ำเริ่มต้น 1 ลงในตัวแปร number จำกนั้นจะทดสอบเงื่อนไข
ว่ำเงื่อนไขเป็นจริงหรือไม่ ถ้ำเป็นจริงจะทำสเตตเมนต์และเพิ่มค่ำ number ขึ้น
หนึ่งค่ำ
ในกำรเพิ่มค่ำให้กับตัวแปรควบคุมจะเพิ่มขึ้นเป็นลำดับ โดยอำจเป็นตัวเลข 1,2,3,…
หรืออักษร ‘A’,’B’,’C’, ก็ได้ดังนั้น กำรประกำศประเภทของตัวแปรควบคุมจะต้องให้
สอดคล้องกับค่ำของข้อมูลด้วย
ถ้ำหำกเขียนคำสั่ง for ดังต่อไปนี้
ลูปซ้อนลูป (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
Public class BrekDemo {
Public static void main(String[ ] argd){
int num = 100;
for(int i = 0; i < num; i ++){
if (i*i > = num)break;
System.out.print(i+ “ “);
}
System.out.print(“Loop complete. “); }
} }
Public class ContDemo {
Public static void main(String[ ] args)
{
for(int i = 0; i < 100; i ++)
if ((i%2 continue;
System.out.print(i);
}
}
}
ข้อควรระวังในกำรใช้คำสั่งทำซ้ำ
ในกำรเขียนโปรแกรมทำลูปมักจะมีข้อผิดพลำดเกิดขึ้นเสมอ โดยโปรแกรมที่เขียนขึ้นจะคอมไพล์
ผ่ำน แต่จะทำงำนไม่ถูกต้องตำมที่ต้องกำร ข้อผิดพลำดนี้เรียกว่ำlogic error ซึ่งโดยทั่วไปใน
กำรทำลูปแล้วจะมีข้อผิดพลำดอยู่ 4 ประกำรคือ
1. กำรกำหนดค่ำเริ่มต้นในกำรทำลูป
2. กำรทดสอบเงื่อนไขก่อนกำรทำลูป
3. ข้อผิดพลำดภำยในโครงสร้ำงของลูป
4. กำรเขียนสเตตเมนต์ปรับค่ำตัวควบคุมลูป
จบกำรนำเสนอ

More Related Content

Similar to เอสสสสสส (1)

งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1
Janë Janejira
 
คำสั่งควบคุมโปรแกรม
คำสั่งควบคุมโปรแกรมคำสั่งควบคุมโปรแกรม
คำสั่งควบคุมโปรแกรม
JK133
 
9789740330820
97897403308209789740330820
9789740330820
CUPress
 

Similar to เอสสสสสส (1) (9)

javabasic
javabasicjavabasic
javabasic
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1
 
ตัวดำเนินการ
ตัวดำเนินการตัวดำเนินการ
ตัวดำเนินการ
 
คำสั่งควบคุมโปรแกรม
คำสั่งควบคุมโปรแกรมคำสั่งควบคุมโปรแกรม
คำสั่งควบคุมโปรแกรม
 
9789740330820
97897403308209789740330820
9789740330820
 
การเขียนคำสั่งควบคุมแบบวนซ้ำ
การเขียนคำสั่งควบคุมแบบวนซ้ำการเขียนคำสั่งควบคุมแบบวนซ้ำ
การเขียนคำสั่งควบคุมแบบวนซ้ำ
 
คำสั่งควบคุมของโปรแกรม
คำสั่งควบคุมของโปรแกรมคำสั่งควบคุมของโปรแกรม
คำสั่งควบคุมของโปรแกรม
 
11
1111
11
 
การควบคุมทิศทางการทำงานของโปรแกรม
การควบคุมทิศทางการทำงานของโปรแกรมการควบคุมทิศทางการทำงานของโปรแกรม
การควบคุมทิศทางการทำงานของโปรแกรม
 

เอสสสสสส (1)