Issuu on Google+

การควบคุมการทำางานของโปรแกรมด้ วย เงือ่ นไข Control Statement รหัสวิชา ง 31101 รายวิชา การเขียนโปรแกรมเบือ้ งต้น

โดย ครู เอกชัย ฉิมพลอย


คำาสั่ งควบคุมทิศทางแบบวนรอบการทำางาน (LOOP)  การควบคุมทิศทางแบบวนรอบ หรื อที่เรี ยกกันว่าการทำางานแบบวนลูป

ำ าสัง่ เดิม โดยมี (loop) ก็คือ การที่เราเขียนโปรแกรมให้วนรอบทำางานซ้าคำ การกำาหนดเงื่อนไขเพื่อให้โปรแกรมวนรอบการทำางาน คำาสัง่ ในภาษา C ที่ใช้สาำ หรับควบคุมทิศทางแบบวนรอบ ได้แก่ while , do-while และ for


คำาสัง่ วนรอบการทำางาน (LOOP)


คำาสัง่ WHILE

 คำาสั่ ง while ใช้ สำาหรับเขียนโปรแกรมเพือ ่ ให้ วนลูปการทำางานเช่ นเดียวกับคำาสั่ ง for

แต่ ต่างกันตรงทีล่ ูป while เราจะไม่ รู้ จาำ นวนรอบทีจ่ ะวนทำางานได้ โดยลูปจะทำางาน ไปเรื่อยๆ ตราบใดทีเ่ งือ่ นไขเป็ นจริงอยู่ จะหยุดก็ต่อเมือ่ เงือ่ นไขทีต่ ้งั ไว้ เป็ นเท็จ while(condition) { statement_1; statement_2; ......... statement_n; }


คำาสัง่ WHILE Condition

ทำางานตามเงือ่ นไขของ while

วนรอบแบบ while จะเริ่มต้ น ทำางานการตรวจสอบเงือ่ นไข ถ้ าเป็ น จริงจะทำางานตามคำาสั่ งของ while เมือ่ เสร็จแล้ วจะวนกลับไปตรวจสอบ เงือ่ นไขใหม่ จนกว่ าเงือ่ นไขจะไม่ เป็ นจริงจึงหลุดออกจากการทำางาน


ตัวอย่างการเขียนคำาสัง่ ลูปแบบ WHILE int count = 0; while (count <= 10) { printf(“Hello %d\n”,count); count++; }

กำาหนดค่ าเริ่มต้ นให้ ตวั แปร count เป็ น 0 กำาหนดค่ าเริ่มต้ นให้ ตัวแปร count เป็ น 0ใช้ ลูป while โดยกำาหนด เงือ่ นไขให้ วนทำางาน ตราบใดที่ค่าของ count ยังคงน้ อยกว่ าหรือ เท่ ากับ 10 ในแต่ ละรอบของลูป เริ่มจากการแสดงข้ อความ Hello ออกทางหน้ าจอต่ อด้ วยการแสดงค่าของตัวอักษร count เพิม่ ค่ าของตัวแปร count

สิ่ งทีต่ ้ องระวังในการใช้ ลูป while ก็คอื ภายในลูปจะต้ องมีอย่ างน้ อยหนึ่งคำาสั่ ง ในการเพิม่ หรือลด หรือแปลงค่ าตัวแปรทีใ่ ช้ ตรวจสอบเงือ่ นไข ไม่ เช่ นนั้นจะกลายเป็ นลูปทีไ่ ม่ มวี นั จบ


คำาสัง่ วนรอบการทำางาน (LOOP)

ตัวอย่ างโปรแกรมคำาสั่ ง while condition #include<stdio.h> void main { int count=0; printf(“Show number zero to ten \n”); while (count<=10) { printf(“%d ”,count); count++; } }


คำาสัง่ วนรอบการทำางาน (LOOP)

ผลลัพธ์ โปรแกรมคำาสั่ ง while condition Show number zero to ten 0 1 2 3 4 5 6 7 8 9 10


คำาสัง่ วนรอบการทำางาน (LOOP)


ตัวอย่างคำาสัง่ DO..WHILE 

วนรอบแบบ do..while จะทำาตามคำาสัง่ ของ do ก่อนหนึ่งรอบแล้วจึงตรวจสอบเงื่อนไข โดยถ้าเงื่อนไขเป็ นจริ งจะวนกลับไปทำางานอีกครั้ ง จนกว่าเงื่อนไขจะเป็ นเท็จ จึงเลิกการ ทำางานวนรอบของ do..while

ทำางานตามเงื่อนไขของ do

จริง

Condition เท็จ


ตัวอย่างคำาสัง่ DO..WHILE num = 1; do { printf(“%d”,num); num++ } while (num <=0);

กำาหนดค่ าเริ่มต้ นตัวแปร num เป็ น 1 ใช้ คาำ สั่ งลูป do..while ภายในลูปให้ เริ่มทำางาน โดยแสดงข้ อความ num พร้ อม กับแสดงค่ าของตัวแปร num ออกทางหน้ าจอ เพิม่ ค่ าตัวแปร loop จาก 1 กลายเป็ น 2 กำาหนดเงือ่ นไขของคำาสั่ง while โดยให้ วนการทำางาน ถ้ าค่ าของตัวแปร num น้ อยกว่าหรือเท่ ากับ 0

ผลการทำางาน โปรแกรมจะแสดงตัวเลข 0 ออกมาทางหน้ าจอเพียงตัวเดียว ซึ่งจะแสดงให้ เห็น ว่าถึงแม้ เงือ่ นไขของ while จะไม่ เป็ นจริง แต่ กย็ งั มีการทำางานตามคำาสั่ งของ do 1 ครั้ง


คำาสัง่ วนรอบการทำางาน (LOOP)

ตัวอย่ างโปรแกรมคำาสั่ ง do…while


คำาสัง่ วนรอบการทำางาน (LOOP)

ผลลัพธ์ โปรแกรมคำาสั่ ง do…while


คำาสัง่ วนรอบการทำางาน (LOOP)


คำาสัง่ FOR


FLOWCHART คำาสัง่ วนรอบการทำางาน (LOOP) Start i=1 i<=4 yes i++ Print “Enter Number”

no

Stop


คำาสัง่ วนรอบการทำางาน (LOOP)

ตัวอย่ างโปรแกรมคำาสั่ ง for


คำาสัง่ วนรอบการทำางาน (LOOP)

ผลลัพธ์ โปรแกรมคำาสั่ ง for


แบบฝึ กหัด1

#include<stdio.h> main() { int i=0; do { printf(“i = %d”,++i); } while (i<10); } โปรแกรมนีจ้ ะแสดงผลอย่ างไร ก. 0-9 ข. 1-9 ค. 1-10 ง. วนลูปไปเรื่อยๆ


แบบฝึ กหัด 3

int x=0; while (x < 6) { }

printf(“%d”,x); x++;

ผลลัพธ์ ของตัวแปรคือข้ อใด ก. 0123456 ข. 012345 ค.12345

ง.123456


สรุ ปเนื้ อหาท้ายบท


สรุ ปเนื้ อหาท้ายบท


สรุ ปเนื้ อหาท้ายบท


แบบฝึ กหัด จงเขียนโปรแกรมแสดงค่ า 1 ถึง 10 ใช้ จงเขียนโปรแกรมแสดงค่ า 10 ถึง 1

while

จงเขียนโปรแกรมแสดงบวกเลข 1ถึง 10

จงเขียนโปรแกรมแสดงแสดงเลขคู่ ระหว่ าง 0-50


แบบฝึ กหัด

 จงเขียนโปรแกรมทีม ่ กี ารวนรับจำานวนเต็มเข้ ามาจนกว่ าผู้ใช้ จะป้อนจำานวน

-999 จะแสดงข้ อความออกจากโปรแกรม ตัวอย่ าง input โปรแกรม Enter number : 4 Enter number : 3 Enter number : 6 Enter number : -999 Exit Program


แบบฝึ กหัด

 เขียนโปรแกรมพิมพ์รูปดังต่อไปนี้ โดยใช้ for

* ** *** **** ***** ******

****** ***** **** *** ** *

26


การควบคุมการทำงานของโปรแกรม