การควบคุมทิศทางการทำงาน if statement การควบคุมทิศทางการทำงาน ของโปรแกรม
การควบคุมทิศทางแบบมีเงื่อนไข คำสั่ง if ประโยค if ประกอบด้วยส่วนที่ทำหน้าที่ตรวจสอบเงื่อนไขเรียกว่า นิพจน์ทางตรรกศาสตร์ เราสามารถใช้โครงสร้างการควบคุมแบบ if ได้ในหลาย ๆ รูปแบบ คำสั่ง if แบ่งตามลักษณะการทำงานได้ 3 แบบ ดังนี้ คำสั่ง if แบบทางเดียว (if) คำสั่ง if แบบสองทาง (if-else) คำสั่ง if แบบหลายทาง (if-else if -else)
1. คำสั่ง if แบบทางเดียว ประโยค if แบบนี้จะมีทางเลือกให้โปรแกรมทำงานเพียงทางเดียวเท่านั้น โดยจะทำงานเมื่อการตรวจสอบเงื่อนไขเป็นจริง ก็จะทำงานในกลุ่มคำสั่งของ if แต่ถ้าเงื่อนไขเป็นเท็จก็จะไม่ทำงาน
1. คำสั่ง if แบบทางเดียว จริง เท็จ Condition กลุ่มคำสั่ง Statement
1. คำสั่ง if แบบทางเดียว if (condition) { statement-1; statement-2; statement-n; } Condition : เงื่อนไขที่กำหนดขึ้นเพื่อใช้พิจารณาว่าจะทำหรือไม่ทำตามคำสั่ง โดยจะต้องเขียนไว้ภายในเครื่องหมาย ( ) ซึ่งเงื่อนไขอาจจะอยู่ในรูปของนิพจน์การคำนวณและเปรียบเทียบ หรือเป็นค่าของตัวแปรก็ได้ Statement : คำสั่งที่จะให้ทำงานถ้าผลการตรวจสอบเงื่อนไขเป็นจริง โดยอาจจะมีมากกว่า 1 คำสั่งก็ได้ แต่ต้องใช้เครื่องหมาย { } ครอบคำสั่งเหล่านั้นไว้ด้วย
1. คำสั่ง if แบบทางเดียว การตรวจสอบว่าจำนวนสินค้า(x) มากกว่าศูนย์หรือไม่ ถ้าใช่ ให้นำไปคูณราคาขายต่อหน่วย (price) แล้วเก็บไว้ในตัวแปร sum จะเขียนชุดคำสั่งได้ดังนี้ if (x>0) { sum = price*x; }
2. คำสั่ง if แบบสองทาง คำสั่ง if - else โครงสร้างแบบ if – else คล้ายกับประโยคควบคุม if แบบ 1 ทางเลือก แต่โปรแกรมมีทางเลือกที่จะทำงานสองทางเลือก คือถ้าเงื่อนใขเป็นจริงทางเลือกที่หนึ่ง ทำงานชุดคำสั่งหลัง if ถ้าเงื่อนในเป็นเท็จจะทำงานทางเลือกที่สอง ทำงานชุดคำสั่งหลัง else
2. คำสั่ง if แบบสองทาง Condition Statement จริง กลุ่มคำสั่ง เท็จ else ประโยคที่ทำเมื่อผลจากนิพจน์ทดสอบเป็นเท็จ;
2. คำสั่ง if แบบสองทาง if (condition) { statement; } else { statement; } ถ้าผลการตรวจสอบเงื่อนไขเป็นจริง ก็จะทำงานตามคำสั่งหลัง if แต่ถ้าผลการตรวจสอบเงื่อนไขเป็นเท็จ ก็จะข้ามคำสั่งหลัง if ไปทำคำสั่งหลัง else
2. คำสั่ง if แบบสองทาง จงเขียนโปรแกรมแสดงเลขคู่และเลขคี่ วิเคราะห์ปัญหา ขั้นตอนการทำงาน 1.เริ่มต้น ผลลัพธ์ 2. กำหนดและรับค่าตัวเลข ถ้าจริง พิมพ์ “ is even number” 3. หาผลหารเอาเศษของตัวเลข ถ้าเท็จ พิมพ์ “ is odd number” 4. เปรียบเทียบผลหารเอาเศษ ข้อมูลนำเข้า ตัวเลข 4.1. ผลหารเอาเศษเท่ากับ 0 พิมพ์ “ is even number” ผลหารเอาเศษ=ตัวเลขmod2 4.2. ถ้าไม่ใช่ พิมพ์ “ is odd number” 5. จบการทำงาน ตัวแปรที่ใช้ ตัวเลข num ผลหารเอาเศษ = result
2. คำสั่ง if แบบสองทาง จงเขียนโปรแกรมแสดงเลขคู่และเลขคี่ start ขั้นตอนการทำงาน num,result 1.เริ่มต้น Result=num%2 2. กำหนดและรับค่าตัวเลข 3. หาผลหารเอาเศษของตัวเลข 4. เปรียบเทียบผลหารเอาเศษ Result=0 N Y 4.1. ผลหารเอาเศษเท่ากับ 0 พิมพ์ “ is even number” 4.2. ถ้าไม่ใช่ พิมพ์ “ is odd number” 5. จบการทำงาน is odd number is even number end
การเขียนโปรแกรมแบบมีเงื่อนไข ลักษณะของเงื่อนไข ลักษณะของเงื่อนไข (Condition) เป็นการนำค่าข้อมูลที่เป็นแบบเดียวกันสองค่ามาเปรียบเทียบกันว่าเท่ากันหรือต่างกันอย่างไร โดยใช้เครื่องหมายเปรียบเทียบ (Comparison Operators) ดังต่อไปนี้ เครื่องหมาย ความหมาย ตัวอย่าง = = เท่ากัน if(a ==b) < น้อยกว่า if(a<b) <= น้อยกว่าหรือเท่ากัน if(a <=b) > มากกว่า if(a >b) >= มากกว่าหรือเท่ากัน if(a >=b) != ไม่เท่ากัน if(a !=b)
2. คำสั่ง if แบบสองทาง จงเขียนโปรแกรมแสดงเลขคู่และเลขคี่ is odd number start #include <stdio.h> #include <conio.h> int main() { int num,result; printf("Input Number : "); scanf("%d",&num); result=num%2; if (result==0) printf("\n\n"); printf("%d is even number\n",num); } else printf("%d is odd number\n",num); getch(); num,result Result=num%2 Result=0 N Y is odd number is even number end
การเขียนโปรแกรมแบบมีเงื่อนไข จงวิเคราะห์งาน เขียนผังงาน และเขียนโปรแกรมดังต่อไปนี้ แบบฝึกหัด 1. เขียนโปรแกรมตรวจสอบตัวเลขจำนวนเต็มบวก และจำนวนเต็มลบ 2. เขียนโปรแกรมตรวจสอบตัวเลขที่มีค่ามากกว่า 10 3. เขียนโปรแกรมเปรียบเทียบตัวเลข 2 จำนวน ว่าจำนวนใดมีค่ามากกว่ากัน ข้อที่ เลขที่ที่ต้องทำ 1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 2 5 8 11 14 17 20 23 26 29 32 35 38 41 44 47 50 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48
3. คำสั่ง if แบบหลายทาง คำสั่ง if-else if-else โครงสร้างแบบ if–else if –else เป็นประโยคควบคุม if ที่มีความซับซ้อนมากขึ้น จะใช้ในกรณีที่ทางเลือกมีมากกว่า 2 ทาง โดยทางเลือกที่หนึ่งใช้ if ( ) ทางเลือกต่อไปใช้ else if ( ) และทางเลือกสุดท้ายใช้ else
3. คำสั่ง if แบบหลายทาง เท็จ Condition จริง กลุ่มคำสั่ง Statement
3. คำสั่ง if แบบหลายทาง โดยจะทำการตรวจสอบเงื่อนไขแรก ถ้าผลออกมาเป็นจริงก็จะทำงานตามคำสั่งของ if แต่ถ้าผลออกมาไม่จริงก็จะทำการตรวจสอบเงื่อนไขที่ 2 ซึ่งถ้าผลเป็นจริงก็จะทำงานตามคำสั่งของ else if นั้น ถ้าไม่จริงจะทำการตรวจสอบเงื่อนไขอื่นที่เรียงตามลำดับต่อไปจนเมื่อครบทุกเงื่อนไขแล้วถ้าผลยังคงไม่จริง ตัวแปลภาษา C จะทำงานตามคำสั่งที่กำหนดไว้ที่ else ซึ่งมีรูปแบบการเรียกใช้งาน ดังนี้
3. คำสั่ง if แบบหลายทาง if (condition) { statement; } else if (condition) { statement; } else { statement; } การทำงานจะตรวจสอบเงื่อนไขแรก ถ้าผลออกมาเป็นจริงก็จะทำงานตามคำสั่งของ if แต่ถ้าผลออกมาไม่จริงก็จะทำการตรวจสอบเงื่อนไขที่ 2 ซึ่งถ้าผลเป็นจริงก็จะทำงานตามคำสั่งของ else if นั้น ถ้าไม่จริงจะทำการตรวจสอบเงื่อนไขอื่นที่เรียงตามลำดับต่อไปจนเมื่อครบทุกเงื่อนไขแล้วถ้าผลเป็นเท็จทั้งหมดจะทำงานตามคำสั่งของ else
3. คำสั่ง if แบบหลายทาง ถ้าค่าในตัวแปร score มากกว่าหรือเท่ากับ 80 ให้ตัวแปร grade มีค่า ‘A’ แต่ถ้าค่าในตัวแปร score มากกว่าหรือท่ากับ 70 ให้ตัวแปร grade มีค่า ‘B’ แต่ถ้าค่าในตัวแปร score มากกว่าหรือเท่ากับ 60 ให้ตัวแปรเกรดมีค่า ‘C’ นอกจากนั้นให้คัวแปรเกรดมีค่า ‘D’ if (score>=80) { grade = “A” ; } else if (score>=70) { grade = “B” ; } else if (score>=60) { grade = “C” } else { grade = “D” ; }
3. คำสั่ง if แบบหลายทาง เขียนโปรแกรมเลข 2 จำนวน จำนวนใดมีค่ามากกว่ากัน วิเคราะห์งาน ผลลัพธ์ เลขจำนวนที่ 1 เท่ากับเลขจำนวนที่ 2 จริง พิมพ์ จำนวนเลขทั้งสองจำนวนเท่ากัน เท็จ เปรียบเทียบ จำนวนที่ 1 มากว่า จำนวนที่ 2 จริง พิมพ์ เลขจำนวนที่ 1 มากกว่า จำนวนจำนวนที่ 2 เท็จ พิมพ์ เลขจำนวนที่ 2 มากกว่า จำนวนจำนวนที่ 1 ข้อมูลนำเข้า ตัวเลข 2 จำนวน ตัวแปรที่ใช้ Num_1, num_2
3. คำสั่ง if แบบหลายทาง เขียนโปรแกรมเลข 2 จำนวน จำนวนใดมีค่ามากกว่ากัน ขั้นตอนการทำงาน 1. เริ่มต้น 2. กำหนดค่าตัวแปรและนำเข้า 3. เปรียบเทียบ ตัวเลขที่ 1 เท่ากับ ตัวเลขที่ 2 ข้อ1. ตัวเลข เท่ากับ 0 ข้อ 2 ตัวเลข เท่ากับ 10 3.1 จริง พิมพ์ ตัวเลขทั้งสองตัวมีค่าเท่ากัน ข้อ 1 พิมพ์ ตัวเลขเป็นจำนวนเต็ม ศูนย์ ข้อ 2 พิมพ์ ตัวเลข เท่ากับสิบ 3.2 เท็จ เปรียบเทียบ ตัวเลขที่ 1 มากกว่า ตัวเลขที่ 2 ข้อ 1 ตัวเลข มากว่า 0 ข้อ 2 ตัวเลข มากว่า 10 3.2.1 จริง พิมพ์ ตัวเลขที่ 1 มากกว่า ตัวเลขที่ 2 ข้อ 1 ตัวเลขเป็นจำนวนเต็มบวก ข้อ 2 พิมพ์ ตัวเลข มากกว่า 10 3.2.2 เท็จ พิมพ์ ตัวเลขที่ 2 มากกว่า ตัวเลขที่ 1 ข้อ 1 พิมพ์ ตัวเลขเป็นจำนวนเต็มลบ ข้อ 2 พิมพ์ ตัวเลข น้อยกว่า 10 จบการทำงาน