เงื่อนไขแบบวนรอบ (C/C++)


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

#include <stdio.h>#include <conio.h>
int main ( )
{
for( int i=0; i<5; i++ ) printf( "Sawasdee\n" );
return 0;
}

SawasdeeSawasdee
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;
}

SawasdeeSawasdee
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;
}

SawasdeeHello
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;
}

01
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;
}

100101
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;
}

010
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 0Sawasdee 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 0Sawasdee 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 3Sawasdee 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;
}

SawasdeeSawasdee
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 ครับ คอยติดตามนะครับ