Page 68 - การพัฒนาการหนังสืออิเล็กทรอนิกส์เรื่องภาษาซี
P. 68
หน่วยที่ 5 คำาสั่งควบคุมแบบทางเลือก 62 หน่วยที่ 5 คำาสั่งควบคุมแบบทางเลือก 63
.................................................................................................................................................. ..................................................................................................................................................
ผลลัพธ์ของการรันครั้งที่ 2 คือ ถ้า เงื่อนไขทางเลือก1 และ เงื่อนไขทางเลือก2 มีค่า จริง แล้วโปรแกรมจะประมวลผล คำา
สั่ง1 ก่อนที่จะประมวลผล คำาสั่ง3
Enter integer value: 9 ถ้า เงื่อนไขทางเลือก1 มีค่า จริง ขณะที่ เงื่อนไขทางเลือก2 มีค่าเท็จ แล้วโปรแกรมจะ
Too low. ประมวลผล คำาสั่ง2 ก่อนที่จะประมวลผล คำาสั่ง3
และถ้า เงื่อนไขทางเลือก1 มีค่า เท็จ แล้วโปรแกรมจะประมวลผล คำาสั่ง3 เพียงคำาสั่งเดียว
ผลลัพธ์ของการรันครั้งที่ 3 คือ เท่านั้น
นั่นคือ ในคำาสั่ง if – else ( หรือคำาสั่ง if – else เชิงซ้อน ) else จะถูกจับคู่กับ if ก่อน
หน้าที่อยู่ใกล้ที่สุดเสมอ ซึ่งในที่นี้คือ if ( เงื่อนไขทางเลือก2 )
Enter integer value: 25
ดังนั้น ในกรณีที่ต้องการให้ คำาสั่ง2 ถูกประมวลผล เงื่อนไขทางเลือก1 มีค่า เท็จ ก่อนที่
Correct!!
จะประมวลผล คำาสั่ง3 จะต้องเพิ่มเครื่องหมาย { และ } ตามรูปแบบด้านล่าง และในที่นี้ if (
เงื่อนไขทางเลือก2 ) จัดเป็นคำาสั่ง if ที่ซ้อนอยู่ในคำาสั่ง if – else ของ if ( เงื่อนไขทางเลือก1
พิจารณาค่าของตัวแปร y สำาหรับโปรแกรมข้างต้นเป็น 3 กรณี ดังนี้ )
• กรณีที่ 1 ถ้า y มีค่าเท่ากับ 100 จะได้ว่านิพจน์ y >TARGET มีค่าเป็น จริง แล้วฟังก์ชัน
printf( ) ในบรรทัดที่ 13 จะถูกประมวลผล if (เงื่อนไขทางเลือก1){
• กรณีที่ 2 ถ้า y มีค่าเท่ากับ 9 จะได้ว่านิพจน์ y >TARGET มีค่าเป็น เท็จ และนิพจน์ y < if (เงื่อนไขทางเลือก2)
TARGET มีค่าเป็น จริง แล้ว ฟังก์ชัน printf( ) ในบรรทัดที่ 15 จะถูกประมวลผล คำาสั่ง1;
• กรณีที่ 3 ถ้า y มีค่าเท่ากับ 25 จะได้ว่านิพจน์ y > TARGET และนิพจน์ y < TARGET มี }
ค่าเป็น เท็จ ทั้งคู่ ดังนั้น ฟังก์ชัน printf( ) ในบรรทัดที่ 17 จะถูกประมวลผล else
คำาสั่ง2;
คำาสั่ง3;
พิจารณาคำาสั่ง if ในรูปแบบต่อไปนี้ ซึ่งมีคำาสั่ง if – else ซ้อนอยู่ด้านใน
if (เงื่อนไขทางเลือก1)
if (เงื่อนไขทางเลือก2)
คำาสั่ง1;
else
คำาสั่ง2;
คำาสั่ง3;