การเขียนโปรแกรมแบบโครงสร้างใน ภาษา C
เราก็มาอธิบายเกียวกับการเขียนโปรแกรมด้วยภาษา C สนับสนุนการเขียนโปรแกรมแบบโครงสร้างทั้ง 3 แบบ คือ โครงสร้างลำดับ โครงสร้างการเลือก โครงสร้างทำซ้ำ
โครงสร้างลำดับใน C
โครงสร้างแบบลำดับใน C การประมวลผลคำสั่งจะทำจากบนล่างทีละคำสั่ง โดยที่คำสั่งแต่ละคำสั่งจะถูกคั่นด้วยเครื่องหมายอัฒภาค ";" เช่น
a = a + 1;
printf ("a = d% \n",a) ;
การทำงานของทั้งสองคำสั่งจะทำจากบนล่างคือ ทำจาก คำสั่ง a = a + 1 ; แล้วไปทำคำสั่ง printf เครื่องหมาย ; ใช้แสดงตำแหน่งสิ้นสุดของแต่ละคำสั่ง ดังนั้นการเขียนคำสั่งอาจเขียนอยู่ในบรรทัดเดียวกันก็ได้ จากสองคำสั่งข้างต้นสามารถเขียนได้อีกแบบ คือ
a = a + 1 ; printf (" a = d% \n" ,a) ;
แต่อย่างไรก็ตามการเขียนคำสั่งต่อเนื่องกันในลักษณะนี้ถือว่าไม่ดีนัก เพราะอ่านยาก เวลาแก้ไขอาจใช้เวลานานกว่าจะหาที่ผิดพบ
คำสั่งแต่ละบรรทัดถือว่าเป็นคำสั่งเดี่ยว ( single staments ) เมื่อต้องการเขียนคำสั่งให้เป็นกลุ่มคำสั่งสามารถทำได้ด้วยการใช้เครื่องหมายวงเล็บปีกกา {} เรียกคำสั่งเหล่านี้ว่า คำสั่งประกอบ ( compound statement ) ภายในวงเล็บปีกกาสามารถเขียนกี่คำสั่งก็ได้ เช่น
{
printf ( "hello \n") ;
printf ( "how to programming in C. \n") ;
}
คำสั่งประกอบนี้ ประกอบด้วยสองคำสั่งเดียว การใช้คำสั่งประกอบนี้มักจะใช้กับคำสั่ง if , for , while
โครสร้างแบบการเลือกใน C
โครงสร้างแบบเงื่อนไขเป็นโครงสร้างที่ต้องมีการตัดสินใจเลือกเส้นทางการประมวลผลโดยมีสองเส้นทาง คือเส้นทางที่เงื่อนไขเป็นจริง ( true ) และเส้นทางที่เงื่อนไขเป็นเท็จ ( false ) การเขียนคำสั่งเลือกเส้นทางการประมวลในภาษา C มีคำสั่งให้เราใช้คือ คำสั่ง if และคำสั่ง switch
โครงสร้างแบบทำซ้ำใน C
โครงสร้างแบบทำซ้ำใน C ได้แก่ คำสั่ง for คำสั่ง while และ คำสั่ง do....while ตัวอย่าง คำสั่งต่อไปนี้
for ( k = 1 ; k <= 3 ; k++ )
printf ("**********\n") ;
คำสั่งนี้เป็นการวนพิมพ์ "********\n" จำนวน 3 รอบ ได้ผลลัพธ์ดังนี้
************
************
************
คำสั่ง if
โครงสร้างการเลือก เมื่อเขียนใน C สามารถใช้คำสั่ง if และ switch คำสั่ง if เป็นคำสั่งใช้ตัดสินใจตามนิพจน์เงื่อนไขมีรูปแบบด้งนี้
if ( coundition )
statement ;
coundition
เป็นเงื่อนไข ซึ่งอยู่ในรูปนิพจน์ตรรกะ ค่าของเงื่อนไขมีค่าเป็นจริง หรือ เท็จ ในภาษา C ถ้านิพจน์ตรรกะมีค่าเป็นจริงแทนด้วยตัวเลใดๆ ที่มีค่าไม่เท่ากับ 0 แต่ถ้าเงื่อนไขเท็จแทนด้วย 0 เสมอ
statement
เป็นคำสั่งที่จะให้ทำงานเมื่อเงื่อนไขมีค่าเป็นจริง แต่ถ้าเงื่อนไขเป็นเท็จก็จะข้ามคำสั่งนี้ไป คำสั่งนี้อาจเป็นคำสั่งเดี่ยว หรือคำสั่งประกอบ(ที่ประกอบด้วยคำสั่งอื่นๆ หลายคำสั่ง) ก็ได้ที่อยู่ภายใต้บล็อก {} เดียวกัน ดังรูปแบบต่อไปนี้
if ( coundition )
{
statement1 ;
statement2 ;
......
statementN ;
}
คำสั่ง for
คำสั่ง for ใน C มีความสามารถทำงานลูปได้ทั้งแบบจำนวนรอบแน่นอน และแบบจำนวนรอบไม่แน่นอน ซึ่งมีรูปแบบดังนี้
for ( initialization ; condition ; increment )
statement ;
initialization
เป็นตัวแปรนับรอบ
conition
เป็นนิพจน์เงื่อนไขการนับรอบ กาวนลูปจะทำจนกว่าเงื่อนไขนี้จะเป็นเท็จ
increment
เป็นนิพจน์การเพิ่มค่า หรือลดค่าตัวนับรอบ
statement
เป็นคำสั่ง หรือกลุ่มของคำสั่งทที่ให้ทำในแต่ละรอบ ตัวอย่าง เช่น
for (I=1 ; I < = 10; I++ )
printf ("A") ;
printf ("\n") ;
printf ("The out size of loop\n") ;
ให้วนลูปพิมพ์ "A" จำนวน 10 รอบ คำสั่งที่อยู่ในลูปมีเพียง 1 คำสั่ง คือ printf ("A") หลังจากจบลูปจะมาทำคำสั่งภายนอกลูป คือ คำสั่ง
printf ("\n")
แล้วไปทำคำสั่ง
printf ("The out size of loop\n)
แต่อย่างไรก็ตามก็เพื่อให้อ่านคำสั่งได้ง่ายให้ใช้วงเล็บีกกาช่วยบอกขอบเขตของลูป for เช่น
for ( I=1; I <=10 ; I++)
{
printf ("A") ;
}
printf ("\n") ;
printf ("The out size of loop\n") ;
คำสั่ง while
คำสั่งนี้ใช้วนลูปส่วนใหญ่แล้วใช้กับการวนลูปที่มีจำนวนรอบไม่แน่นอน เช่น การอ่านข้อมูลจากแฟ้ม เราไม่ทราบแน่นอนว่าจะมีการวนลูปกี่รอบแล้วแต่ว่าจะถึงจุดสิ้นสุดแฟ้มแล้วหรือยัง รูปแบบคำสั่งเป็นดังนี้
while ( coundition )
{
statement1 ;
statement2 ;
....
}
counding
เป็นเงื่อนไขที่ใช้ตรวจสอบการวนลูป ถ้าเงื่อนไขมีค่าจริง ( true ) จะไปทำคำสั่งในลูป แต่ถ้าเงื่อนไขเป็นเท็จ ( false ) ให้ออกจากลูปไปทำคำสั่งต่อจาก while (ตามหลังวงเล็บปีกกาปิด) การเขียนเงื่อนไขต้องเขียนวงเล็บเสมอ มิฉะนั้นจะเกิดข้อผิดพลาด เมื่อต้องการออกจากลูปกลางคันสามารถใช้คำสั่ง break เพื่อให้หลุดจากลูปไปทำคำสั่ง while ต่อไป
statement1 , statement2 ,.... เป็นกลุ่มของคำสั่งที่เราต้องการให้ทำในแต่ละรอบ
ตัวอย่าง
output1 = (13 > 8) ;
ค่าของ output1 มีค่าเป็น 1 แสดงว่าเก็บค่าจริง
สำหรับ output2 มีค่าเป็น 0 เนื่องจาก (9<4) เป็นเท็จ
output 2 = ( 9 < 4) ;
เขียนโปรแกรมได้ดังนี้
1 / * File Name : chap06_01 .c* /
2 #include <stdio.h>
3 void main ()
4 {
5 int output1, output2 ;
6 output1 = (13 > 8) ;
7 output2 = (9 <4) ;
8 printf (" Value of true in C is %d \n" ,output1) ;
9 printf (" Value of false in C is %d \n" , output2) ;
10 if (99)
11 printf ("99 is not equal to zero, it is true. \n") ;
12 if (-99)
13 printf ("-99 is also true. \n") ;
14 }
อ้างอิงข้อมูลจาก : หนังสือ หลักการเขียนโปรแกรมภาษา C โดย ผศ.ปัญญาพล หอระตะ