. . . . . . . .มาแล้วๆ หายไปนานโทษที แหะ แหะ เอาละคราวนี้เป็นการตั้งเงื่อนไขให้กับโปรแกรม และการผ่านค่าไปยัง function ดูได้จากเวลาเราจะให้โปรแกรมทำอะไร เราก็ต้องส่งค่าไปยัง function ที่ต้องการ แบบนี้ |
#include <stdio.h> #include <conio.h> int main( ) {
} |
Sawasdee |
. . . . . . . .จากตัวอย่างแจกแจงได้ออกเป็น
. . . . . . . .มาดูอีกตัวอย่าง การส่งค่าให้กับ function ที่เราเขียนขึ้นเอง |
#include <stdio.h> #include <conio.h> void function1( char *msg ) //<-------- รับค่าเป็นข้อความ จะอธิบายให้ทีหลังเรื่อง char * นะครับ {
} int function2( int param1, int param2 ) //<-------- รับค่าเป็น Integer {
} int main( ) {
} |
Sawasdee ha ha ha 10 20 |
. . . . . . . .จากตัวอย่างข้างบนเป็นการส่งค่าไปให้ function และค่าที่เราส่งไปนั้นเราเรียกว่า พารามิเตอร์ เราสามารส่งค่า พารามิเตอร์ ได้หลายตัวและก็ได้หลากหลายรูปแบบ ลองดูตัวอย่างนะครับ เป็นการส่งค่าไปให้ function แบบผสม |
#include <stdio.h> #include <conio.h> void function1( int param1, int param2, long param2, char *param4) //<-------- รับค่าเป็น Integer, Long, char* {
} int main( ) {
} |
Sawasdee 10 20 100 ha ha ha |
. . . . . . . .ต่อไปเป็นการส่งค่าคืนกลับ สังเกตุการกำหนดรูปแบบ function นะครับ จะเห็นได้ว่ามีทั้งแบบ void และ int ถ้าเป็น void เราไม่ต้องส่งค่ากลับ แต่ถ้าเป็น int เราต้องส่งค่ากลับและการรับค่าที่ส่งกลับเราทำได้แบบนี้ |
#include
<stdio.h> #include <conio.h> int function1( int param1, int param2 ) //<------ ต้องกำหนดรูปแบบ function ไม่ให้เป็นรูปแบบ void {
} int main( ) {
} |
Value in 30 |
. . . . . . . .การส่งค่ากลับเราต้องใช้คำสั่ง return นะครับ จะส่งค่าแบบไหนก็ใช้ return ลองเขียน function มาเยอะๆ แล้วมาผสมกับแบบนี้ดูนะครับ จะสามารถพลิกแพงได้หลายตลบเลยทีเดียว ดูตัวอย่างข้างล่างนะครับ |
#include
<stdio.h> #include <conio.h> int function1( int param1, int param2 ) {
} int function2( int param1, int param2 ) {
} int main( ) {
} |
Value in 230 |
. . . . . . . .การทำงานของตัวอย่างข้างบนคือ เรียก function1 มาทำการบวกค่าที่อยู่ในตัวแปร param2 และ param2 ต่อไปเรียก function2 มาทำการคูณค่าที่อยู่ในตัวแปร param1 และ param2 และส่งค่ากลับไปยังตัวแปร i แล้วก็พิมพ์ออกมา ง่ายๆ ครับลองดูหลายๆรอบ ต่อไป ถ้าหากว่าเราต้องการส่งค่ามากกว่า 1 การใช้ return ส่งได้เพียงค่าเดียวแล้วเราจะทำยังงัย เอ้อ..................hmmm....... งั้นดูนี่ |
#include
<stdio.h> #include <conio.h> int function1( int param1, int *param2 ) {
} int main( ) {
} |
10 10 |
. . . . . . . .เริ่มมีตัวประหลาดเข้ามาแล้วทีนี้
ฮ่า ฮ่า ฮ่า
ไม่ยากครับ
มันเป็นรูปแบบเฉยๆ
ดูที่ function1 นะครับ
. . . . . . . .สังเกตที่ param2 จะมีเครื่องหมายดอกจันท์ เพื่อที่จะบอกว่าตัวแปรนั้นส่งค่ากลับได้ และการใช้ตัวแปร param2 ต้องมีเครื่องหมายดอกจันทน์นำหน้าเสมอ แล้วการส่งค่าไปยัง function1 ต้องมีเครื่องหมาย & นำหน้าตัวแปรเสมอ อย่าส่งตัวเลขไปละ ต้องสร้างตัวแปรมารองรับครับ ดูอีกตัวอย่าง |
#include
<stdio.h> #include <conio.h> int function1( int param1, int *param2 ) {
} int main( ) {
} |
10 30 |
. . . . . . . .คราวนี้มีการให้ค่าแก่ตัวแปร
param2
ก่อนแล้วนำไปทำการบวกกันที่
function1
เราต้องใส้เครื่องหมายวงเล็กครอบตัวแปร
param2 นะครับ
เพราะถ้าเขียนแบบนี้
. . . . . . . .เดี๋ยวเราจะงงถ้าไม่มีวงเล็บ ก็ให้รู้ไว้ว่าถ้าเราจะใช้ตัวแปรแบบ param2 ก็ต้องมีเครื่องหมายวงเล็บ แต่ถ้าจะให้ค่า ก็ไม่ต้องมีเครื่องหมายวงเล็กนะครับ แบบนี้
. . . . . . . .และเราสามารถส่งค่ากลับมาได้หลายๆตัวเช่นกัน ลองเขียนดูนะครับ |
#include
<stdio.h> #include <conio.h> int function1( int param1, int *param2, int *param3 ) {
} int main( ) {
} |
10 30 30 |
. . . . . . . .จะเห็นได้ว่าเราสามารถเขียน function ไปคำนวณและส่งค่ากลับมาได้หลายตัวเลยทีเดียว ทำให้การใช้งานยิ่งสะดวกขึ้น ลองเขียน function มาเยอะๆ นะครับ หลายๆ รูปแบบ |
void function1( char
*msg ) //<--------
รับค่าเป็นข้อความ
จะอธิบายให้ทีหลังเรื่อง
char * นะครับ int function2( int param1, int param2 ) //<-------- รับค่าเป็น Integer void function1( int param1, int param2, long param2, char *param4) //<-------- รับค่าเป็น Integer, Long, char* return param1 + param2; //<--- ต้องส่งค่ากลับเพราะไม่ใช่ function แบบ void int i = function1( 10, 20 ); //<------ เรียก fuction1 แล้วส่งค่าคืนให้กับ ตัวแปร i int function1( int param1, int *param2 ) //<--- ดูที่ param2 int function1( int param1, int *param2, int *param3 ) *param2 = param1; //<------ ให้ค่า param1 แก่ param2 สังเกตุเครื่องหมายดอกจันท์นะครับ i = function1( 10, 20 ); //<-------- ห้าม !! ทำแบบนี้ *param2 = param1 + (*param2); //<------ ให้ค่า param1 + param2 *param3 = 30; //<------ ให้ค่า param3 i = function1( 10, ¶m2, ¶m3 ); //<--- ต้องมีเครื่องหมาย & นำเหน้าเสมอ |
. . . . . . . .วันนี้ก็ได้เรื่องการสร้าง function เพิ่มเติม จากครั้งที่แล้วได้แก่ การส่งค่า การรับค่าจาก function คิดว่าไม่ยากอะไร ลองเขียนมาหลายๆ function แล้วก็ลองใช้ หลายๆ รูปแบบนะครับ พรุ่งนี้มาลุยเรื่องเงื่อนไข เพราะการจะสั่งให้ computer ทำงานก็ต้องมีการกำหนดเงื่อนไขการทำงาน แล้วจะกำหนดอย่างไร ติดตามๆ นะครับ |