ตอนที่ 4: การสร้างเงื่อนไข และการเปรียบเทียบ

. . . . . . . .การจะสั่งให้โปรแกรมทำอะไร ไปทางไหน อย่างไร เราก็ต้องมีการกำหนดเเงื่อนไขการทำงานให้กับโปรแกรม ว่าจะให้ไปทำงานไหนก่อน ดูตัวอย่าง
#include <stdio.h>

#include <conio.h>

int main( )

{

int i = 10;

if( i < 100 ) printf( "Sawasdee\n" ); //<-------- คำสั่ง if แปลว่า ถ้า

return 0;

}

Sawasdee
. . . . . . . .ตัวอย่างข้างบนค่อนข้างจะตรงตัว คือ ถ้าค่าของ i น้อยกว่า 100 พิมพ์ข้อความ Sawasdee แจกแจงได้ดังนี้

if แปลว่า ถ้า

i < 100 แปลว่า เปรียบเทียบค่า i ว่าน้อยกว่า 100 หรือไม่

เครื่องหมายเปรียบเทียบค่าสองค่า ที่ใช้บ่อยๆ ได้แก่

< น้อยกว่า

> มากกว่า

== เท่ากับ

<= น้อยกว่หรือเท่ากับ

>= มากกว่าหรือเท่ากับ

จากเครื่องหมายข้างบน เราสามารถนำไปใช้ได้แบบนี้

#include <stdio.h>

#include <conio.h>

int main( )

{

int i = 10;

if( i < 100 ) printf( "Sawasdee 1\n" ); //<-------- เปรียบเทียบว่าน้อยกว่า 100 หรือไม่

if( i > 100 ) printf( "Sawasdee 2\n" ); //<-------- เปรียบเทียบว่ามากกว่า 100 หรือไม่

if( i == 100 ) printf( "Sawasdee 3\n" ); //<-------- เปรียบเทียบว่าเท่ากับ 100 หรือไม่

if( i <= 100 ) printf( "Sawasdee 4\n" ); //<-------- เปรียบเทียบว่าน้อยกว่าหรือเท่ากับ 100 หรือไม่

if( i >= 100 ) printf( "Sawasdee 5\n" ); //<-------- เปรียบเทียบว่ามากกว่าหรือเท่ากับ 100 หรือไม่

return 0;

}

Sawasdee1

Sawasdee4

. . . .. . .จะเห็นว่าโปรแกรมจะพิมพ์ข้อความมาสองบรรทัด เพราะเงื่อนไขต่อไปนี้ ถูกต้อง

if( i < 100 ) printf( "Sawasdee 1\n" ); //<-------- เปรียบเทียบว่าน้อยกว่า 100 หรือไม่

if( i <= 100 ) printf( "Sawasdee 4\n" ); //<-------- เปรียบเทียบว่าน้อยกว่าหรือเท่ากับ 100 หรือไม่

. . . . . . . .ที่เหลือไม่ถูกต้อง ก็จะไม่พิมพ์ออกมา จำเครื่องหใายเปรียบเทียบไว้นะครับว่ามีอะไรบ้าง ต่อไปเป็นการเปรียบเทียบค่าจากตัวแปรสองตัว

#include <stdio.h>

#include <conio.h>

int main( )

{

int i = 10;

int j = 100; //<------ กำหนดตัวแปรให้ค่า 100

if( i < j ) printf( "Sawasdee 1\n" ); //<-------- เปรียบเทียบว่าน้อยกว่าค่าของ j หรือไม่

if( i > j ) printf( "Sawasdee 2\n" ); //<-------- เปรียบเทียบว่ามากกว่าค่าของ j หรือไม่

if( i == j ) printf( "Sawasdee 3\n" ); //<-------- เปรียบเทียบว่าเท่ากับค่าของ j หรือไม่

if( i <= j ) printf( "Sawasdee 4\n" ); //<-------- เปรียบเทียบว่าน้อยกว่าหรือเท่ากับค่าของ j หรือไม่

if( i >= j ) printf( "Sawasdee\n" ); //<-------- เปรียบเทียบว่ามากกว่าหรือเท่ากับค่าของ j หรือไม่

return 0;

}

Sawasdee1

Sawasdee4

. . . . . . . .เรายังสามารถเปรียบเทียบหลายๆ ชั้นได้โดยใช้เครื่องหมายวงเล็กครอบ แบบนี้
#include <stdio.h>

#include <conio.h>

int main( )

{

int i = 10;

int j = 100;

if((i < 100) || (i < j )) printf( "Sawasdee\n" ); //<-------- สังเกตุดี ดี

return 0;

}

Sawasdee
. . . . . . . .คราวนี้มีเครื่องหมายประหลาด โผล่มาแล้ว ฮ่า ฮ่า ฮ่า ไม่ยากๆ เนื่องจากมีการเปรียบเทียบซ้อนกันหลายชั้น เราก็ต้องมีเครื่องหมายบอก แปลได้ว่า

if((i < 100) || (i < j )) printf( "Sawasdee\n" );

. . . . . . . .ถ้าค่าของ i น้อยกว่า 100 หรือ ค่าของ i น้อยกว่า ค่าของ j แปลเป็นภาษามนุษย์ก็ได้แบบนี้ละ นอกจากนั้นก็ต้องมีเครื่องหมายอื่นๆ อีกเพื่อความหลากหลายในการเปรียบเทียบข้อมูล ดังนี้

|| หรือ

&& และ

. . . . . . . .ถ้า, หรือ, และ แค่นี้ละครับไม่มีอะไรมาก เราก็นำมาใช้งานแบบนี้

#include <stdio.h>

#include <conio.h>

int main( )

{

int i = 10;

int j = 100;

if((i < 100) || (i < j )) printf( "Sawasdee 1\n" ); //<-------- เครื่องหมาย หรือ

if((i < 100) && (i < j )) printf( "Sawasdee 2\n" ); //<-------- เครื่องหมาย และ

return 0;

}

Sawasdee1

Sawasdee2

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

#include <conio.h>

int main( )

{

int i = 10;

if( i < 100 ) printf( "Sawasdee 1\n" );

else //<--------- เพิ่มเข้ามา

if( i < 50 ) printf( "Sawasdee 2\n" );

return 0;

}

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

#include <conio.h>

int main( )

{

int i = 10;

if( i < 100 ) printf( "Sawasdee 1\n" );

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

if( i < 50 ) printf( "ha ha ha\n" );

} else //<--------- ดู ดี ดี

if( i < 50 ) printf( "Sawasdee 2\n" );

return 0;

}

Sawasdee1

ha ha ha

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

#include <conio.h>

int main( )

{

int i = 10;

switch( i ) //<----- ดูตรงนี้

{

// จะเปรียบเทียบว่าเท่ากันหรือไม่

case 10 : printf( "Sawasdee 1\n" ); break;

case 50 : printf( "Sawasdee 2\n" ); break;

case 100 : printf( "Sawasdee 3\n" ); break;

}

return 0;

}

Sawasdee1
. . . . . . . .คำสั่ง switch จะมีความสะดวกมากกว่า คำสั่ง if ในกรณีที่มีเปรียบเทียบมากๆ การใช้ if เพียงคำสั่งเดียว คงไม่สะดวกเป็นแน่แท้ ลองเปรียบเทียบกับตัวอย่างข้างล่างดูนะครับ ทำงานเหมือนกัน
#include <stdio.h>

#include <conio.h>

int main( )

{

int i = 10;

if( i == 10 ) printf( "Sawasdee 1\n" );

else

if( i == 50 ) printf( "Sawasdee 2\n" );

else

if( i == 100 ) printf( "Sawasdee 3\n" );

return 0;

}

Sawasdee1
. . . . . . . .เมื่อเรารู้จักการกำหนดเงื่อนไขเบื้องต้นแล้ว ให้ลองนำความรู้จากบทต้นๆ มาทำการเขียนเปรียบเทียบกัน ดูนะครับ ลองเขียนเงื่อนไขภายใน function ของเราเอง หรือการส่งค่า รับค่า ลองดู ไม่ยากๆ

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

if( i < 100 ) printf( "Sawasdee\n" ); //<-------- คำสั่ง if แปลว่า ถ้า

< น้อยกว่า

> มากกว่า

== เท่ากับ

<= น้อยกว่หรือเท่ากับ

>= มากกว่าหรือเท่ากับ

if( i < 100 ) printf( "Sawasdee 1\n" ); //<-------- เปรียบเทียบว่าน้อยกว่า 100 หรือไม่

if( i > 100 ) printf( "Sawasdee 2\n" ); //<-------- เปรียบเทียบว่ามากกว่า 100 หรือไม่

if( i == 100 ) printf( "Sawasdee 3\n" ); //<-------- เปรียบเทียบว่าเท่ากับ 100 หรือไม่

if( i <= 100 ) printf( "Sawasdee 4\n" ); //<-------- เปรียบเทียบว่าน้อยกว่าหรือเท่ากับ 100 หรือไม่

if( i >= 100 ) printf( "Sawasdee 5\n" ); //<-------- เปรียบเทียบว่ามากกว่าหรือเท่ากับ 100 หรือไม่

if( i < 100 ) printf( "Sawasdee 1\n" );

else //<--------- เพิ่มเข้ามา

if( i < 50 ) printf( "Sawasdee 2\n" );

switch( i ) //<----- ดูตรงนี้

{

// จะเปรียบเทียบว่าเท่ากันหรือไม่

case 10 : printf( "Sawasdee 1\n" ); break;

case 50 : printf( "Sawasdee 2\n" ); break;

case 100 : printf( "Sawasdee 3\n" ); break;

}

. . . . . . . .วันนี้ก็ได้เรื่องการสร้าง การกำหนดเงื่อนไขและเปรียบเทียบไปบาง ส่วนลองหัดเขียนดูตามตัวอย่างนะครับ เพราะไม่ยากอะไร แล้วต่อไป จะเป็นการเข้าเงื่อนไขแบบวนรอบ หรือ loop คอยติดตามนะครับ