หมวดวิชาคอมพิวเตอร์ โรงเรียนพะเยาพิทยาคม โดย อ.วัชระ การสมพจน์ การโปรแกรมภาษาซี - If…else… - Case../ switch Loop - while … - do…while - for หมวดวิชาคอมพิวเตอร์ โรงเรียนพะเยาพิทยาคม โดย อ.วัชระ การสมพจน์
คำสั่ง if รูปแบบของคำสั่ง if (เงื่อนไข) คำสั่งที่ต้องทำ ถ้าเงื่อนไขนั้นเป็นจริง; ตัวอย่างเช่น if (score >= 80) grade = ‘A’; /* simple statement */ หรือ if ((math >= 60) && (eng >= 55)) { grade = ‘S’; /* compound statement */ printf(“Your grade is %c\n”,grade); }
คำสั่ง if ….. else ….. รูปแบบของคำสั่ง if (คำสั่งหรือนิพจน์เงื่อนไข) คำสั่งที่ต้องทำเมื่อเงื่อนไขนั้นเป็นจริง; else คำสั่งที่ต้องทำเมื่อเงื่อนไขนั้นไม่เป็นจริง; ตัวอย่างเช่น if (value1 > value2) min = value2; else min = value1;
คำสั่ง if ….. else if…..else... รูปแบบของคำสั่ง if (คำสั่งเงื่อนไข 1) คำสั่งที่ต้องทำ 1 เมื่อเงื่อนไข 1 นั้นเป็นจริง; else if (คำสั่งเงื่อนไข 2) คำสั่งที่ต้องทำ 2 เมื่อเงื่อนไข 2 นั้นเป็นจริง; else if (คำสั่งเงื่อนไข 3) คำสั่งที่ต้องทำ 3 เมื่อเงื่อนไข 3 นั้นเป็นจริง; else if ……... ……… else คำสั่งที่ต้องทำ เมื่อเงื่อนไข n นั้นไม่เป็นจริง;
ตัวอย่าง คำสั่ง if ….. else if…..else... printf(“ Input score “); scanf(“%f”,&s); if ((s<0) || (s>100)) printf(“Your score is error !! ”); else if (s<50) printf(“Your grade is F : Fail”); else if (s<65) printf(“Your grade is P : Pass”); else printf(“Your grade is G : Good”);
เครื่องหมายพิเศษที่ใช้ในการเปรียบเทียบเงื่อนไข ? : รูปแบบทั่วไปของคำสั่งเปรียบเทียบเงื่อนไข ? : มีดังนี้ นิพจน์ที่ 1 ? นิพจน์ที่ 2 : นิพจน์ที่ 3 ความหมายคือ if นิพจน์ที่ 1 เป็นจริง ทำตามคำสั่งในนิพจน์ที่ 2 else ทำตามคำสั่งในนิพจน์ที่ 3 เช่น x = (y< 0) ? -y : y;
คำสั่งตรวจสอบเงื่อนไขหลาย ๆ ทาง : case switch และ break รูปแบบคำสั่ง switch (นิพจน์) /*นิพจน์ที่เป็น จำนวนเต็ม หรือ ตัวอักขระ */ { case label1 : statement1; case label2 : statement2; …………….. default : statementn; }
ตัวอย่าง switch (ch) /* ch เป็นจำนวนเต็ม หรือ ตัวอักขระ */ { case ‘1’ : printf(“Red\n”); case ‘2’ : printf(“Blue\n”); case ‘3’ : printf(“Yellow\n”); default : printf(“White\n”); }
ตัวอย่าง switch (ch) /* ch เป็น ตัวอักขระ */ { case ‘r’ : printf(“Red\n”); break; case ‘b’ : printf(“Blue\n”); case ‘y’ : printf(“Yellow\n”); default : printf(“White\n”); }
คำสั่ง loop หรือคำสั่งวนซ้ำ คำสั่งลูป while รูปแบบ while (นิพจน์เงื่อนไข) { คำสั่งที่วนซ้ำ; ………… compound statements …………. }
คำสั่งวนรอบแบบที่ตรวจสอบเงื่อนไขก่อน : while ถ้า เงื่อนไขเป็นจริง ให้ทำงานคำสั่งวนซ้ำ เช่น x=1; while (x<10) printf(“*”); หรือ num = 2; while (num <= 10) { num++; printf(“Now no is %d\n”,num); }
คำสั่งวนรอบแบบที่ตรวจสอบเงื่อนไขทีหลัง : do while ทำงานก่อน 1 รอบ แล้วตรวจสอบเงื่อนไข ถ้าเป็นจริง ให้ทำงานคำสั่งที่วนซ้ำ ถ้าไม่จริง ให้ออกจากวนซ้ำ รูปแบบ do { คำสั่งที่วนซ้ำ; } while (นิพจน์เงื่อนไข); เช่น num = 2; do { num++; printf(“Now no is %d\n”,num); } while (num == 10);
คำสั่งลูป for รูปแบบ for ( นิพจน์ที่ 1 ; นิพจน์ที่ 2 ; นิพจน์ที่ 3 ) { คำสั่งวนซ้ำ; ……. } เป็นคำสั่งที่ใช้ในการควบคุมให้มีการวนรอบคำสั่งหลาย ๆ รอบ โดยนิพจน์ที่ 1 คือการกำหนดค่าเริ่มต้นให้กับตัวแปรที่ใช้ในการวนรอบ นิพจน์ที่ 2 เป็นการเปรียบเทียบ ก่อนที่จะวนรอบถ้าเงื่อนไขของนิพจน์ เป็นจริงจะมีการทำงานตามคำสั่งวนรอบ นิพจน์ที่ 3 เป็นคำสั่งในการ กำหนดค่าที่จะเปลี่ยนแปลงไปในแต่ละรอบ
คำสั่งวนรอบแบบที่ทราบจำนวนรอบแน่นอน : for เช่น for (num=1;num<= 10;num++) { printf(“Now no is %d\n”,num); } หรือ n = 0; for (num=10;num>=1;num--) n = n+num; printf(“No is %d Sum is%d\n”,n,num);
คำสั่ง break คำสั่งควบคุมอื่น ๆ break, continue, goto และ labels ใช้เมื่อต้องการให้การทำงานสามารถหลุดออกจากลูปและกระโดด ไปยังคำสั่งที่อยู่นอกลูปทันที โดยไม่ต้องตรวจสอบเงื่อนไขใด ๆ คำสั่ง continue ใช้เมื่อต้องการให้การทำงานนั้น ย้อนกลับไปวนรอบใหม่อีกครั้ง ซึ่งมีลักษณะที่ตรงข้ามกับคำสั่ง break
คำสั่ง goto และ labels คำสั่ง goto ประกอบด้วย 2 ส่วน คือ โดยจะกำหนดเป็นชื่อ เรียกว่า label name - ชื่อ (label name) เป็นตัวกำหนดตำแหน่งที่คำสั่งจะกระโดด ไปทำงาน ข้อควรระวัง ! คำสั่งนี้ถือเป็นคำสั่งที่ควรหลีกเลี่ยงในการเขียนโปรแกรม แต่ถ้าจำเป็นหรือหลีกเลี่ยงไม่ได้เท่านั้น จึงจะใช้คำสั่งนี้
ตัวอย่างโปรแกรมที่ใช้คำสั่ง goto #include<stdio.h> main() { int sum,n; for(n=1;n<10;n++) if (n==5) goto part1; else printf(“%d\n”,n); part1 : printf(“Interrupt with no. 5\n”); }