ตอนที่ 5: เงื่อนไขแบบวนรอบ

. . . . . . . .การเขียนโปรแกรมต้องมีการกำหนด วงรอบการทำงาน เมื่อเสร็จสิ้นกะบวนการแล้ว เรากก็จบการทำงาน หรือไปทำยังวนรอบอื่น ยกตัวอย่าง โปรแกรมที่ต้องรอรับค่าคีย์ ก็ต้องมีการววรอบรอคอยจนกว่าจะกดคีย์ถึงจะหลุด หรือจบการทำงาน และบางครั้ง การทำงานซ้ำๆ บ่อยๆ ก็ต้องใช้เงื่อนไขวนรอบ จะได้เป็นการลดภาระการเขียนโปรแกรมไปได้อย่างดี มาดูตัวอย่าง
#include <stdio.h>

#include <conio.h>

int main ( )

{

for( int i=0; i<5; i++ ) printf( "Sawasdee\n" );

return 0;

}

Sawasdee

Sawasdee

Sawasdee

Sawasdee

Sawasdee

. . . . . . . นี่คือคำสั่ง.วนรอบ อีกแบบหนึ่งมีรูปแบบการใช้งานดังนี้

for( int i=0; i<5; i++ )

for( ) คำสั่งวนรอบ

int i กำหนดตัวแปรสำหรับนับ ชื่อตัวแปล i ปะเภท Integer

i<5 คือเงื่อนไขถ้านับแล้วยังน้อยกว่า 5 ให้ยังคงอยู่ในวนรอบต่อไป

i++ คือให้เพิ่มค่าตัวแปร i

i -- คือลดค่าตัวแปล i

. . . . . . . .การกำหนดตัวแปรนับข้างในเงื่อนไข for เรากำหนดข้างนอกก็ได้ แบบนี้

#include <stdio.h>

#include <conio.h>

int main ( )

{

int i; <--------- กำหนดข้างนอก

for( i=0; i<5; i++ ) printf( "Sawasdee\n" );

return 0;

}

Sawasdee

Sawasdee

Sawasdee

Sawasdee

Sawasdee

. . . . . .ถ้ามีการทำงานหลัง for มากๆ เราก็ต้องให้ขอบเขตการทำงานเข้าไปด้วยแบบนี้
#include <stdio.h>

#include <conio.h>

int main ( )

{

for( int i=0; i<3; i++ )

{ //<------- ต้องใส่ขอบเขตการทำงาน

printf( "Sawasdee\n" );

printf( "Hello\n" );

} //<----- สิ้นสุดขอบเขตการทำงานของ วนรอบ for

return 0;

}

Sawasdee

Hello

Sawasdee

Hello

Sawasdee

Hello

. . . . . . . .หรือเรา จะใช้เป็นตัวแปรก็ยังได้ แบบนี้
#include <stdio.h>

#include <conio.h>

int main ( )

{

for( int i=0; i<3; i++ ) printf( "Sawasdee %i\n", i );

return 0;

}

0

1

2

. . . . . . . .หรือเรา จะใช้เป็นตัวแปรก็ยังได้ แบบนี้ ไว้คำนวณกับตัวแปรอื่นอีก แบบนี้
#include <stdio.h>

#include <conio.h>

int main ( )

{

int value = 100; //<------ กำหนดตัวแปร

for( int i=0; i<3; i++ ) printf( "Sawasdee %i\n", value + i ); //<-- สั่งให้คำนวณ

return 0;

}

100

101

102

. . . . . . . .หรืออีกแบบนึง คำนวณภายในขอบเขตของ for ก็ยังได้
#include <stdio.h>

#include <conio.h>

int main ( )

{

int value1 = 100; //<------ กำหนดตัวแปร

for( int i=0; i<3; i++ )

{ //<------ ต้องกำหนดขอบเขตการทำงาน

printf( "Sawasdee %i\n", value );

value = i * 10; //<------- คำนวณตัวแปร i คูณ 10

}

return 0;

}

0

10

20

. . . . . . . .ยังมีแบบซ้อนกันอีก นะครับ ลองดู ไม่ยากเลย
#include <stdio.h>

#include <conio.h>

int main ( )

{

for( int i=0; i<3; i++ )

{

for( int i2=0; i2<3; i2++) printf( "Sawasdee %i %i ", i2, i );

printf( "\n" ); //<----- เลื่อนบรรทัด

}

return 0;

}

Sawasdee 0 0 Sawasdee 1 0 Sawasdee 2 0

Sawasdee 0 1 Sawasdee 1 1 Sawasdee 2 1

Sawasdee 0 2 Sawasdee 1 2 Sawasdee 2 2

. . . . . . . .ลองดูการทำงานนะครับ ไม่ยากอะไรเลย โดยเฉพาะข้างบนนี้ และต่อไป เรามาดู เงื่อนไขวนรอบ อีกแบบหนึ่งที่ ใช้บ่อยมากในการเขียนโปรแกรม

เงื่อนไข Do

#include <stdio.h>

#include <conio.h>

int main ( )

{

int i = 0; //<----- กำหนดตัวสำหรับนับ และให้ค่าเริ่มต้น 0

while( i < 3 ) //<------- เงื่อนไข

{

printf( "Sawasdee %i\n", i );

i++; //<------- ต้องมาเพิ่มค่าที่นี่นะครับ

}

return 0;

}

Sawasdee 0

Sawasdee 1

Sawasdee 2

. . . . . . . .จากวนรอบนี้เงื่อนไขไม่แตกต่างจาก for เท่าไร จะแตกต่างก็การนับที่ต้องทำถายในขอบเขต while แตกต่างนิดหน่อย แต่ใช้ง่ายเหมือนกันครับ ลองมาดูอีกตัวอย่างกัน
#include <stdio.h>

#include <conio.h>

int main ( )

{

int i = 3; //<----- กำหนดตัวสำหรับนับ และให้ค่าเริ่มต้น 0

while( i > 0) //<------- เงื่อนไข

{

printf( "Sawasdee %i\n", i );

i--; //<------- ต้องมาลดค่าที่นี่นะครับ

}

return 0;

}

Sawasdee 3

Sawasdee 2

Sawasdee 1

. . . . . . . .ลองดูนะครับแล้วมาลองใช้กับที่เราเรียนมากัน ไม่ยากเลย
#include <stdio.h>

#include <conio.h>

void function1( )

{

printf( "Sawasdee\n" );

}

int main ( )

{

int i = 3; //<----- กำหนดตัวสำหรับนับ และให้ค่าเริ่มต้น 0

while( i > 0) //<------- เงื่อนไข

{

function1( ); //<------ เรียก function ที่เราเขียนขึ้นเอง

i--; //<------- ต้องมาลดค่าที่นี่นะครับ

}

return 0;

}

Sawasdee

Sawasdee

Sawasdee

วันนี้ได้อะไรหว่า ???

for( int i=0; i<5; i++ ) printf( "Sawasdee\n" );

int i; <--------- กำหนดข้างนอก

for( i=0; i<5; i++ ) printf( "Sawasdee\n" );

for( int i=0; i<3; i++ )

{ //<------- ต้องใส่ขอบเขตการทำงาน

printf( "Sawasdee\n" );

printf( "Hello\n" );

} //<----- สิ้นสุดขอบเขตการทำงานของ วนรอบ for

int value = 100; //<------ กำหนดตัวแปร

for( int i=0; i<3; i++ ) printf( "Sawasdee %i\n", value + i ); //<-- สั่งให้คำนวณ

int i = 0; //<----- กำหนดตัวสำหรับนับ และให้ค่าเริ่มต้น 0

while( i < 3 ) //<------- เงื่อนไข

{

i++;

}

int i = 3; //<----- กำหนดตัวสำหรับนับ และให้ค่าเริ่มต้น 0

while( i > 0 ) //<------- เงื่อนไข

{

i--;

}

i++; สั่งให้เพิ่มค่าตัวแปร i ครั้งละ 1

i--; สั่งให้ลดค่าตัวแปร i ครั้งละ 1

i += 10; สั่งให้เพิ่มค่าตัวแปร i ครั้งละ 10

i -= 10; สั่งให้ลดค่าตัวแปร i ครั้งละ 10

. . . . . . . .วันนี้ผมอธิบายค่อนข้างจะสั้น เนื่องมาจากว่าง่ายมากที่เราจะทำความเข้าใจ แต่ผมก็ได้เขียนมาหลายๆ ตัวอย่างแล้ว ต่อไปจะเข้าเรื่องการกำหนดโครงสร้าง record ครับ คอยติดตามนะครับ