คำสั่งควบคุม

9
คคคคคคคคคคคคค (Control Statement)

Upload: umaraporn

Post on 21-Aug-2015

2.429 views

Category:

Education


0 download

TRANSCRIPT

Page 1: คำสั่งควบคุม

คำ��สั่��งคำวบคำม(Control Statement)

Page 2: คำสั่งควบคุม

คำ��สั่��งคำวบคำมเป็�นคำ��สั่��งที่��สั่��คำ�ญในก�รเขี�ยนโป็รแกรม ซึ่��งเป็�นคำ��สั่��งที่��ช่�วยคำวบคำมที่�ศที่�งก�รที่��ง�นขีองโป็รแกรมให้#เป็�นไป็ต�มที่��ต#องก�ร แบ�งออกเป็�น 2 ป็ระเภที่ คำ(อ

1. คำ��สั่��งเง(�อนไขี (Condition Statement) ได้#แก� คำ��สั่��ง if, if-else, switch

2. คำ��สั่��งที่��ซึ่�*� (Iteration Statement) ได้#แก� for, while, do-while

คำ��สั่��งคำวบคำม(Control Statement)

Page 3: คำสั่งควบคุม

เป็�นคำ��สั่��งที่��ใช่#ในก�รตรวจสั่อบเง(�อนไขีต�มที่��ได้#เขี�ยนไว#ในโป็รแกรม

เพื่(�อให้#โป็รแกรมที่��ง�นต�มขี#อก��ห้นด้ที่��เร�ต#องก�ร เม(�อโป็รแกรมน��เอ�เง(�อนไขีม�ที่��ก�รตรวจสั่อบ โด้ยก�ร

เป็ร�ยบเที่�ยบคำ��ต�มเง(�อนไขี ซึ่��งผลล�พื่ธ์0ที่��ได้#จะม�อย1� 2 คำ��เที่��น�*น คำ(อ จร�ง“ ”(True) ห้ร(อ เที่2จ“ ”(Flase)

ถ้#�ผลล�พื่ธ์0ที่��ได้#เป็�น จร�ง จะให้#โป็รแกรมที่��คำ��สั่��งอะไร“ ”ต�อไป็

ห้ร(อถ้#�ผลล�พื่ธ์0เป็�น เที่2จ จะให้#โป็รแกรมที่��อะไร “ ”

1. คำ��สั่��งประเภทเง��อนไข(Condition Statement)

Page 4: คำสั่งควบคุม

คำ��สั่��งเง��อนไขท��น��ม�ใช้�ในก�รพั�ฒน�โปรแกรมคำวบคำมหุ่!นยนต์$ MicroCamp

ได้�แก! คำ��สั่��ง if ร'ปแบบ คำ��สั่��ง if if (เง(�อนไขีเป็ร�ยบเที่�ยบ) {

คำ��สั่��งที่��ต#องก�รให้#กระที่�� ถ้#�ผลเป็ร�ยบเที่�ยบเป็�นจร�ง } ต์�วอย!�งคำ��สั่��ง if

#include <in_out.h>#include <motor.h> // ผลจ�กก�รที่ด้สั่อบบนห้�นถ้#�ห้�ก

ม�ก�รกด้Void main() ป็4ม SW1 บนห้�นจะที่��ให้#เง(�อนไขีเป็�น “จร)ง”{ if (in_d(2)==0) ห้�นยนต0จะเด้�นห้น#�ไป็เร(�อยๆ ถ้#�ไม�ม� { forward(100); } ก�รกด้ป็4ม sw1 แสั่ด้งว��เง(�อนไขี

เป็�น เท*จ“ ” backward(100); ห้�นยนต0ก2จะที่��ต�มคำ��สั่��งที่��อย1�ห้ล�ง

บล2อคำขีองคำ��สั่��ง if } ที่�นที่�� น��นคำ(อเด้�นถ้อยห้ล�งน��นเอง//

Page 5: คำสั่งควบคุม

คำ��สั่��งเง��อนไขท��น��ม�ใช้�ในก�รพั�ฒน�โปรแกรมคำวบคำมหุ่!นยนต์$ MicroCamp

ได้�แก! คำ��สั่��ง if-else , if-else-if ร'ปแบบ คำ��สั่��ง if-else (แถวท�� I ,III และ IV) และ คำ��สั่��ง if

ซ้�อน if(แถวท�� I - IV)

I if (เง(�อนไขีเป็ร�ยบเที่�ยบที่�� 1) { คำ��สั่��งที่�� 1 ที่��ต#องก�รให้#กระที่�� ถ้#�ผลเป็ร�ยบเที่�ยบเป็�นจร�ง

คำ��สั่��งที่�� 2 ที่��ต#องก�รให้#กระที่�� ถ้#�ผลเป็ร�ยบเที่�ยบเป็�นจร�ง }

II else if (เง(�อนไขีเป็ร�ยบเที่�ยบที่�� 2) //เม��อเง��อนไขท�� 1 ไม!เป.นจร)งก*ม�ต์รวจสั่อบเง��อนไขท�� 2 ต์!อ

{ คำ��สั่��งที่�� 3 ที่��ต#องก�รให้#กระที่�� ถ้#�ผลเป็ร�ยบเที่�ยบเป็�นจร�ง

คำ��สั่��งที่�� 4 ที่��ต#องก�รให้#กระที่�� ถ้#�ผลเป็ร�ยบเที่�ยบเป็�นจร�ง }

III else { คำ��สั่��งที่�� 5 ต#องก�รให้#กระที่�� ถ้#�ผลเป็ร�ยบเที่�ยบที่กกรณี�เป็�น

เที่2จ คำ��สั่��งที่�� 6 ต#องก�รให้#กระที่�� ถ้#�ผลเป็ร�ยบเที่�ยบที่กกรณี�เป็�น

เที่2จ } IV คำ��สั่��งที่�� 7 // เป.นคำ��สั่��งปกต์)ท��โปรแกรมจะท��ต์!อ เม��อ

โปรแกรมหุ่ลด้ออกจ�กคำ��สั่��ง if

Page 6: คำสั่งควบคุม

#include <in_out.h>#include <motor.h> #include <sleep.h>Void main(){ if (in_d(2)==0) // ผลจ�กก�รที่ด้สั่อบบนห้�นถ้#�

ห้�กม�ก�รกด้ { backward(100); ป็4ม SW1 บนห้�นจะที่��ให้#เง(�อนไขีเป็�น “จร)ง”

sleep(300); ห้�นยนต0จะเด้�นถ้อยห้ล�งและเล�*ยวซึ่#�ยและเด้�นต�อไป็เร(�อยๆ

s_left(50); } ถ้#�ไม�ม�ก�รกด้ป็4ม sw1 แสั่ด้งว��เง(�อนไขีเป็�น เท*จ ก*ม�“ ”

else if (in_d(3)==0) ต์รวจสั่อบเง��อนไขท�� 2 ว��ม�ก�รกด้ป็4ม sw2 ห้ร(อไม� ถ้#�ม�

{ forward(100); แสั่ด้งว��เง(�อนไขีเป็�น จร)ง “ ”ห้�นยนต0ก2จะเด้�นห้น#�และเล�*ยวซึ่#�ย

sleep(300); ถ้#�ไม�ม�ก�รกด้ป็4ม sw2 แสั่ด้งว��เง(�อนไขีเป็�น เท*จ “ ” ก2ม�ที่��

s_left(50); } คำ��สั่��งใน else คำ(อ ห้�นจะเล�*ยวขีว� และโป็รแกรมก2จะม�ที่��

else คำ��สั่��งสั่ด้ที่#�ยห้ล�งจบบล2อคำคำ��สั่��ง if คำ(อห้�นยนต0ก2จะห้ยด้เด้�น

{ s_right(50); } น��นเอง // motor_stop(); }

ต์�วอย!�งคำ��สั่��ง if-else และ if-else-if (if ซ้�อน if)

Page 7: คำสั่งควบคุม

เป็�นคำ��สั่��งที่��ใช่#ก��ห้นด้จ��นวนรอบ(loop) ในก�รที่��ง�น ซึ่��งก�รที่��ง�นขีองโป็รแกรม ม�ป็ระโยช่น0ม�กในกรณี�ที่��ต#องที่��ง�นห้น��งๆซึ่�*�ก�นห้ล�ยๆคำร�*ง ได้#แก� คำ��สั่��ง while , do-while , for

2. คำ��สั่��งประเภทท��ซ้�/�(Iteration Statement)

Page 8: คำสั่งควบคุม

ได้#แก� คำ��สั่� �ง while ร'ปแบบ คำ��สั่��ง while while (เง�อนไข) { // ก�รที่��ง�นขีองคำ��สั่��ง while จะม�ก�ร

ตรวจสั่อบ คำ��สั่� �ง ห้ร(อ กล�มคำ��สั่��งที่��ต#องก�รให้#ที่��ซึ่�*� เง(�อนไขีก�อน ถ้#�เง(�อนไขีเป็�น”จร)ง จ�งจะเขี#�ไป็”

} ที่��ง�นภ�ยในบล2อคำ while ที่��ซึ่�*�ไป็เร(�อยๆ // ต์�วอย!�งคำ��สั่��ง while

#include <in_out.h>#include <motor.h> // ผลจ�กก�รที่ด้สั่อบบนห้�นถ้#�ห้�กม�ก�รกด้Void main() ป็4ม SW1 บนห้�นจะที่��ให้#เง(�อนไขีเป็�น “จร)ง”{ while (1) ห้�นยนต0จะเด้�นห้น#�ไป็เร(�อยๆ ถ้#�ไม�ม� { forward(100); ก�รกด้ป็4ม sw1 แสั่ด้งว��เง(�อนไขีเป็�น

เท*จ“ ” sleep(300); ห้�นยนต0ก2จะที่��ต�มคำ��สั่��งที่��อย1�ห้ล�งบล2อคำขีองคำ��

สั่��ง// backward(100);

sleep(300); }

}

คำ��สั่��งท��ซ้�/� ท��น��ม�ใช้�ในก�รพั�ฒน�โปรแกรมคำวบคำมหุ่!นยนต์$ MicroCamp

Page 9: คำสั่งควบคุม

ได้#แก� คำ��สั่��ง do-while ร'ปแบบ คำ��สั่��ง do-while do { // ก�รที่��ง�นขีองคำ��สั่��ง do-while จะม�ก�รเขี#�ไป็

คำ��สั่��ง ห้ร(อ กล�มคำ��สั่��งที่��ต#องก�รให้#ที่��ซึ่�*� ที่��ง�นก�อน 1 คำร�*ง แล#วจ�งตรวจสั่อบเง(�อนไขี

}while (เง�อนไข) ถ้#�เง(�อนไขีเป็�น”จร)ง จ�งจะเขี#�ไป็ที่��ง�นซึ่���ภ�ยใน” บล2อคำ do-while ไป็เร(�อยๆ //

ต์�วอย!�งคำ��สั่��ง while#include <in_out.h>#include <motor.h> // ผลจ�กก�รที่ด้สั่อบบนห้�นถ้#�ห้�กม�ก�รกด้Void main() ป็4ม SW1 บนห้�นจะที่��ให้#เง(�อนไขีเป็�น “จร)ง”{ do ห้�นยนต0จะเด้�นห้น#�ไป็เร(�อยๆ ถ้#�ไม�ม� { forward(100); ก�รกด้ป็4ม sw1 แสั่ด้งว��เง(�อนไขีเป็�น เท*จ“ ” sleep(300); ห้�นยนต0ก2จะที่��ต�มคำ��สั่��งที่��อย1�ห้ล�งบล2อคำขีองคำ��

สั่��ง// backward(100);

sleep(300); } while (1);

}

คำ��สั่��งท��ซ้�/� ท��น��ม�ใช้�ในก�รพั�ฒน�โปรแกรมคำวบคำมหุ่!นยนต์$ MicroCamp