Tutorial

C Language 101 - If-Else Statement (EP.3)

By Arnon Puitrakul - 18 เมษายน 2015

C Language 101 - If-Else Statement (EP.3)

สวัสดีครับ หายไปนานเลย นึกว่าจะไม่เขียนแล้วล่ะซี้!! แฮร่~~ ช่วงนี้กำลังย้ายเว็บ กับติดงานและเกมหลายๆอย่างอยู่ เลยไม่เป็นอันเขียน วันนี้ตัดสินใจแน่วแน่แล้วว่าจะ เขียน ให้ได้ มาเข้าเรื่องของวันนี้กันเลย
วันนี้จะว่าด้วยเรื่องของ If-Else Statement กันครับ ถ้าใครเคยเรียนภาษาอังกฤษมา มันก็คือประโยคเงื่อนไข นั่นเอง ในโปรแกรมมิ่งก็เช่นเดียวกันครับ เราสามารถที่จะเลือกให้ทำแบบนี้แบบนั้นได้ ถ้า... เช่นกัน รูปแบบคือ

if (condition) {//do sth}

ถ้า... แล้วข้างในเป็นเงื่อนไข อะไรก็ว่ากันไปเช่น a == 2 เป็นต้นอะไรแบบนี้ (ในการเปรียบเทียบต้องใช้ == (เท่ากับ 2 ตัว ไม่ใช่ = ตัวเดียว) เท่ากับตัวเดียวคือการ Assign ค่าให้ตัวแปรไม่ใช่ การเปรียบเทียบ ถ้าเงื่อนไขตรงก็ทำใน do sth เลย แล้วถ้าไม่ตรงล่ะก็ จะมีอีกคำสั่งนึงเข้ามานั่นคือ else

if (condition) {//do sth}
else {//do sth else}

จากแบบข้างบนนี้ เราเพิ่ม Else เข้ามาเพื่อว่า ถ้ามันไม่เข้าเงื่อนไขบน If ข้างบนจะให้มันลงมาทำตรง Else ทันที แต่ยังมีอีกกรณีนึงคือ เรามีหลายเงื่อนไข เราจะใช้ Else if เข้ามาช่วย

if (condition 1) {//do sth}
else if (condition 2) {//do sth}
else {//do sth}

จากข้างบน เราแทรก else if เข้ามาระหว่าง if และ else เพื่อ เพิ่มเงื่อนไขให้มัน วิธีทำงานคือ ถ้ามันไม่ตรงกับเงื่อนไขใน if มันจะลงมาเช็ค else if ถ้าตรงก็ทำ ถ้าไม่ก็ลงไป else เลย
การใส่ else if ไม่จำเป็นต้องเขียนแบบนี้แป๊ะเลยคือ เราสามารถที่จะ else if ได้กี่ครั้งก็ได้ แล้วแต่เราเลย เช่น

if (condition 1) {//do sth}
else if (condition 2) {//do sth}
else if (condition 3) {//do sth}
else {//do sth}

เรามาลองใช้กันเลย ตัวอย่างแรก เราจะมาลองดัก ง่ายๆกันก่อน เลขคู่ เลขคี่

int a = 2;
if (a%2 == 0) {printf("Even Number");}
else {printf("Odd Number");}

วิธีเช็คคือ เราจำมันมา Mod (หารเอาแต่เศษ) กัน ถ้าหารด้วย 2 เหลือเศษเป็น 0 ก็จะเป็นเลขคู่ ตรงข้าม ถ้าไม่ก็เป็นเลขคี่ เพราะฉะนั้น Output คือ

Even Number

มาลองยากกว่านี้หน่อย

int a = 2;
if (a == 2) {a++;}
else if (a==3) {a++;}
else if (a==4) {a++;}
printf("%d",a)

คิดว่า Output จะออกมาเป็นยังไง ดีหว่า... ตอบ 3 หรือตอบ 5 ดี คำตอบคือ 3 เพราะมันจะเข้าไปใน Condition แรก เพราะว่า a ของเรามันเท่ากับ 2 และข้างในของ Block Condition แรก เราให้ a มันบวกไปอีก 1 เพราะฉะนั้น a เลยเป็น 3 และสุดท้าย เราก็สั่งให้มันแสดง a ออกมาทางหน้าจอ
อีกนิดจะจบและ เรื่องสุดท้าย นั่นคือ การใช้ and, or operation
ง่ายๆสั้นๆ เพราะเหมื่อยแล้ว and จะเป็นจริงได้ก็ต่อเมื่อทั้ง 2 กรณีเป็นจริง จะเขียนแทนด้วย && เช่น

int a =2;
if (a==2 && a%2 ==0) {printf("That's Right!!!");

อย่างตัวอย่างข้างบน เราบอกว่า ถ้า a เป็น 2 และ a%2 เป็น 0 ให้ทำ.... แบบในปีกา
or ก็เช่นกัน แต่ or จะเป็นจริงเพียงอันเดียวก็ได้แล้ว (or จะเขียนแทนด้วย ||) เช่น

int a =2;
if (a != 2 || a%2 == 0) {printf("That's Right!");}

แบบตัวอย่างข้างบน Output ที่ออกมาก็จะเป็น

That's Right!

เพราะเราบอกว่า ถ้า a ไม่เป็น 2 (ซึ่งมันก็เป็นเท็จอยู่แล้ว เพราะเรากำหนดไปในบรรทัดแรก) หรือ a%2 แล้วเป็น 0 (เงื่อนไขนี้เป็นจริง) เนื่องจากมี เงื่อนไขใดเงื่อนไขหนึ่งเป็นจริง เพราะฉะนั้น ก็โค๊ตใน Block ก็จะถูกรัน
สำหรับวันนี้ก็จบเพียงเท่านี้ล่ะกันครับ คราวหน้าะมาต่อเรื่องอะไร รอติดตามชมกันได้เลยครับผม ไม่นานเหมือนตอนนี้แน่นอน

Read Next...

ติดตั้ง Zigbee Dongle บน Synology NAS กับ Home Assistant

ติดตั้ง Zigbee Dongle บน Synology NAS กับ Home Assistant

ก่อนหน้านี้เราเปลี่ยนมาใช้ Zigbee Dongle กับ Home Assistant พบว่าเสถียรขึ้นเยอะมาก อุปกรณ์แทบไม่หลุดออกจากระบบเลย แต่การติดตั้งมันเข้ากับ Synology DSM นั้นมีรายละเอียดมากกว่าอันอื่นนิดหน่อย วันนี้เราจะมาเล่าวิธีการเพื่อใครเอาไปทำกัน...

โหลด CSV วิธีไหนเร็วที่สุด ?

โหลด CSV วิธีไหนเร็วที่สุด ?

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

ฮาวทู Sync Obsidian Note ด้วย LiveSync Plugin

ฮาวทู Sync Obsidian Note ด้วย LiveSync Plugin

ตั้งแต่ใช้ Obsidian เป็น App จด Note หลัก ชอบวิธีการจัดการมาก ๆ เมื่อใช้งานร่วมกับ Plugin ต่าง ๆ ยิ่งทำให้การใช้งานยืดหยุ่นมากกว่าเดิมอีกเยอะมาก ๆ ติดอยู่เรื่องเดียวคือ การใช้งานในหลาย ๆ อุปกรณ์ แต่เราเจอ Plugin ตัวนึงที่น่าสนใจมาก ๆ คือ LiveSync วันนี้เราจะมาเล่าวิธีการติดตั้ง และใช้งานมันกัน...

การสร้าง SSD Storage Pool บน Synology DSM

การสร้าง SSD Storage Pool บน Synology DSM

สำหรับคนที่ใช้ Synology NAS บางรุ่นจะมีช่อง M.2 สำหรับเสียบ NVMe SSD โดยพื้นฐาน Synology บอกว่ามันสำหรับการทำ Cache แต่ถ้าเราต้องการเอามันมาทำเป็น Storage ละ มันจะทำได้มั้ย วันนี้เราจะมาเล่าวิธีการทำกัน...