วันพฤหัสบดีที่ 22 พฤษภาคม พ.ศ. 2557

การตรวจสอบเงื่อนไขด้วย if

การใช้คำสั่ง if

    ใช้สำหรับการตรวจสอบเงื่อนไขก่อนการทำตามคำสั่ง หากตรงกับที่กำหนดหลัง if จะทาตามคำสั่งที่อยู่ภายในบล็อก { } โดยมีรูปแบบดังนี้ คือ


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




คำสั่ง if…else


การใช้คำสั่ง else if

    คำสั่ง else if ในกรณีที่มีการตรวจสอบหลายๆ เงื่อนไขทำให้ไม่สะดวกต่อการใช้ if หลายๆ ครั้ง เราสามารถใช้ else if เข้ามาช่วยตรวจสอบในแต่ละเงื่อนไขได้โดยใช้รูปแบบ คือ


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


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


      จากที่กำหนด score=75 แสดงว่าตรงกับเงื่อนไข (score>=70) และ(score>=60) แต่เนื่องจากเราวางเงื่อนไข (score>=70) เอาไว้ก่อน ดังนั้น เฉพาะเงื่อนไข (score>=70) เท่านั้นที่จะถูกเลือก และหลังจากที่ทำตามเงื่อนไขนี้เสร็จ ก็ข้ามการตรวจสอบเงื่อนไขส่วนนี้ไปเลย

การใช้คำสั่ง if ซ้อนกัน (Nest if)

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


ตัวอย่าง

      การเปรียบเทียบว่าช่วงอายุดังกล่าวจะอยู่ในวัยใด โดยรับข้อมูลปี พ.ศ. ที่เกิดแล้วนำไปคำนวณหาอายุจากปีปัจจุบัน โดยปีปัจจุบันหาได้จาก DateTime.Now.Year

1. จัดวางคอนโทรลดังรูป



2. กำหนดโค้ดสำหรับเมื่อคลิกที่ปุ่ม ตรวจสอบ ดังนี้

3. รันโปรแกรม แล้วลองกำหนด พ.ศ. ที่เกิดลงไป จะได้ผลลัพธ์ลักษณะดังนี้

 


วันศุกร์ที่ 9 พฤษภาคม พ.ศ. 2557

โอเปอเรเตอร์

     โอเปอเรเตอร์ (Operator) คือ สัญลักษณ์ที่ใช้ในการประมวลผลทางคณิตศาสตร์ หรือทางตรรกะ ใน VC# สามารถแบ่ง Operator ได้หลายกลุ่มดังนี้

โอเปอเรเตอร์สำหรับการคำนวน

ใช้ในการคานวณทางคณิตศาสตร์ ซึ่งโอเปอเรเตอร์บางตัวเราก็คุ้นเคยกันดีอยู่แล้ว


โอเปอเรเตอร์สำหรับการคำนวนค่า (Assignment)

     Assignment เป็นเครื่องหมายสาหรับการกาหนดค่าของตัวแปรทางด้านซ้ายของเครื่องหมาย
ด้วยค่าที่อยู่ทางด้านขวาของเครื่องหมาย

ข้อควรระวังเกี่ยวกับการใช้ ++ และ - ร่วมกับชอร์ตคัต

    การเครื่องหมาย ++ หรือ -- ไว้ด้านหน้าหรือหลังตัวแปร หากตัวแปรนั้นอยู่เดี่ยว ๆ ค่าที่ได้จะไม่ต่างกัน เช่น

แต่หากนำไปใช้ในรูปแบบของ Expression หรือกระทำกับค่าอื่น ๆ ด้วย ค่าที่ได้อาจแตกต่างกันไป เช่น ลองกรณีต่อไปนี้

***ความจริงหลักการที่กล่าวมานี้พิจารณาจากลำดับความสำคัญของโอเปอเรเตอร์ ตามที่จะกล่าวถึงในลำดับต่อไป

โอเปอเรเตอร์สำหรับการเปรียบเทียบ (Comparison)

      Comparison เป็นเครื่องหมายสำหรับการเปรียบเทียบเพื่อหาค่าความจริงระหว่างข้อมูล 2 อย่าง ซึ่งหากผลการเปรียบเทียบเป็นจริงจะได้ผลลัพธ์เป็น true แต่หากเป็นเท็จจะได้ false

เช่น

 

โอเปอเรเตอร์ทางตรรกะ (Logic)

       เป็นการเปรียบเทียบระหว่าง 2 เงื่อนไข ซึ่งแต่ละเงื่อนไขที่นำมาเปรียบเทียบจะต้องมีค่าเป็น true หรือ false อย่างใดอย่างหนึ่ง และผลลัพธ์ที่ได้ก็จะเป็น true หรือ false อย่างใดอย่างหนึ่งเช่นกัน


      การเปรียบเทียบทางตรรกะนี้สาคัญมากในการเขียนโปรแกรม ซึ่งเราต้องได้ใช้งานกันไปตลอด ดังนั้นขอให้ทำความเข้าใจหลักการตรรกะการเปรียบเทียบนี้ให้ดี ตัวอย่างเช่น

Ternary Operator

    Ternary เป็นโอเปอเรเตอร์ในการเปรียบเทียบในอีกลักษณะหนึ่งคือ ถ้าตรงกับเงื่อนไขผลลัพธ์จะเป็นอย่างไร และกรณีที่ไม่ตรงตามเงื่อนไขผลลัพธ์จะเป็นอย่างไร รูปแบบการใช้งาน คือ


 หมายความว่า หาก Expression มีค่าเป็นจริงผลลัพธ์จะเป็น x แต่หากเป็นเท็จผลลัพธ์จะเป็น y เช่น

 

ลำดับความสำคัญของโอเปอเรเตอร์ใน VC#

       ในการคำนวณนั้นอาจจะต้องใช้โอเปอเรเตอร์ร่วมกันมากกว่า 1 อย่าง จึงอาจเกิดปัญหาว่าเราจะนำโอเปอเรเตอร์ตัวใดมาพิจารณาก่อน เพราะการวางตำแหน่งหรือจัดกลุ่มที่ต่างกัน ผลลัพธ์ที่ได้ก็อาจแตกต่างกันไปด้วย ดังนั้น การจัดลำดับความสำคัญของโอเปอเรเตอร์เป็นสิ่งที่สำคัญอย่างหนึ่งสำหรับโอเปอเรเตอร์ทั้งหมดที่เราได้ศึกษามา สามารถจัดลำดับความสำคัญได้ดังนี้


โอเปอเรเตอร์ที่ลำดับความสำคัญเท่ากัน โอเปอเรเตอร์ที่มาก่อนจะถูกนำมาใช้ในการคำนวณก่อน เช่น

     ในทางปฏิบัติเพื่อหลีกเลี่ยงความผิดพลาดจากลาดับความสำคัญของโอเปอเรเตอร์ ควรใช้วงเล็บในการจัดแบ่งกลุ่มให้ชัดเจน

ตัวอย่างที่ 3.1

     การเปลี่ยนอุณหภูมิจากฟาเรนไฮต์เป็นเซลเซียส โดยมีสูตรการคำนวณคือ 5 * (F - 32)/ 9 และแปลงจากเซลเซียสเป็นฟาเรนไฮต์โดยใช้สูตร (C * 9) / 5 + 32

1. จัดวางคอนโทรลลงไปบนฟอร์มพร้อมกำหนดชื่อดังรูป
2. ดับเบิลคลิกที่ปุ่ม แปลงเป็นเซลเซียส แล้วกาหนดโค้ดลงไปดังนี้
3. ดับเบิลคลิกที่ปุ่ม แปลงเป็นฟาเรนไฮต์ แล้วกาหนดโค้ดลงไปดังนี้
4.รันโปรแกรม แล้วกาหนดอุณหภูมิในหน่วยที่ต้องการแปลงลงไป เมื่อคลิกปุ่มสาหรับการแปลงในแต่ละ
   หน่วย ลักษณะผลลัพธ์เป็นดังนี้


วันพุธที่ 7 พฤษภาคม พ.ศ. 2557

ตัวแปร, โอเปอเรเตอร์, เงื่อนไข และลูป VISUAL C#

ชนิดของข้อมูลใน VC#

การกำหนดตัวแปร

      ตัวแปร (variable) หมายถึงสัญลักษณ์ที่เราใช้ในการอ้างอิงถึงข้อมูลแต่ละอย่าง โดยข้อมูลที่จะนำมากำหนดให้แก่ตัวแปรต้องตรงกับชนิดข้อมูลที่เราได้ระบุไว้กับตัวแปรนั้น และการจะนำข้อมูลไปใช้งานก็ต้องกระทำผ่านตัวแปรนี้

     แม้ว่าในบทที่แล้วเราจะผ่านการใช้งานเกี่ยวกับตัวแปรมาบ้าง แต่ก็เป็นพื้นฐานเพียงเล็กน้อยเท่านั้น ซึ่งเพื่อให้เกิดความต่อเนื่องในการศึกษา ในบทนี้ก็จะนำสิ่งที่เราเคยศึกษามาแล้วบางส่วนมากกล่าวถึงอีกครั้งหนึ่งพร้อมด้วยในรายละเอียดที่เราควรรู้เพิ่มเติมอื่นๆ อีก

กฎการตั้งชื่อตัวแปรที่สำคัญ

• ต้องประกอบด้วยอักขระ A-Z, a-z, 0-9 หรือ _ เท่านั้น
• อักขระตัวแรกต้องเป็นตัว A-Z หรือ a-z หรือ _ อย่างใดอย่างหนึ่ง เท่านั้น (จะเป็นตัวเลขไม่ได้)
• มีความยาวไม่เกิน 1,023 ตัว
• ต้องไม่ซ้ากับ Reserved Words ของ VC#
• ต้องประกอบด้วยอักขระ A-Z, a-z, 0-9 หรือ _ เท่านั้น
• การเขียนด้วยลักษณะตัวพิมพ์เล็กพิมพ์ใหญ่ต่างกัน ถือว่าเป็นคนละ ตัวกัน เช่น abc ≠ ABC ≠ Abc
  เป็นต้น

ตัวอย่างการตั้งชื่อตัวแปร

      ที่ถูกต้อง เช่น x, firstname, Num1, Price_per_unit, _isValid, VAT

ตัวอย่างการตั้งชื่อตัวแปร

      ที่ไม่ถูกต้อง เช่น price/unit (เพราะมี อักขระ /), 1st_name (เพราะเริ่มต้นด้วยตัวเลข), string (เพราะซ้ำ กับ Reserved Word) เป็นต้น โดยทั่วไปแล้ว สำหรับ VC# นิยมตั้งชื่อตัวแปรให้ขึ้นด้วยตัวพิมพ์เล็ก และถ้าเป็นการนำหลายๆ คำมารวมกันเป็นชื่อตัวแปร ก็ให้เฉพาะคำแรกขึ้น ต้นด้วยตัวพิมพ์เล็ก ส่วนคำถัดไปให้ขึ้นต้นด้วยตัวพิมพ์ใหญ่ เช่น firstName, pricePerUnit, numEmployees, dayOfWeek เป็นต้น

การประกาศตัวแปร

     สำหรับการประกาศตัวแปรใน VC# จะระบุชนิด หรือประเภทของข้อมูลของตัวแปรนั้นก่อน แล้วตามด้วยชื่อตัวแปร ในรูปแบบดังนี้

 เช่น
 หากข้อมูลเป็นชนิดเดียวกัน เราสามารถประกาศรวมในชนิดข้อมูลเดียวกันได้

การกำหนดข้อมูลให้แก่ตัวแปร

    การกำหนดค่าให้แก่ตัวแปรสำหรับข้อมูลแต่ละชนิดจะมีรูปแบบที่แตกต่างกัน ซึ่งสามารถจำแนกตามชนิดข้อมูลได้ดังนี้

ข้อมูลชนิดตัวเลข

ข้อมูลชนิดตัวเลขนั้น เราสามารถแบ่งเป็น 2 ประเภท คือ

1. ข้อมูลประเภทจานวนเต็ม(Integer) เช่น 123, 999, 1008 เป็นต้นโดยชนิดตัวแปรที่ใช้เก็บข้อมูลประเภทนี้ เช่น int, byte, short
หรือ long
2. ข้อมูลประเภทจานวนจริง(Real) ซึ่งอาจเป็นได้ทั้งจานวนเต็ม หรือ มีทศนิยมก็ได้เช่น 123, 4.56 ,1.01 เป็นต้น โดยชนิดตัวแปรที่ใช้เก็บข้อมูลประเภทนี้ เช่น double, float หรือ decimal

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

    เราไม่สามารถนำตัวเลขที่มีทศนิยมไปกำหนดให้ตัวแปรประเภทจำนวนเต็มได้ เช่น ต่อไปนี้จะเกิดข้อผิดพลาดทั้งหมด
ตัวแปรประเภท Real นั้นสามารถเก็บค่าได้ทั้งจำนวนเต็ม และมีทศนิยม เช่น

ข้อมูลชนิดลีน

     ข้อมูลชนิดลีนจะเป็นได้เพียงค่า true หรือ false อย่างใดอย่างหนึ่ง ซึ่ง true และ false นี้ก็เป็นคีย์เวิร์ดของ VC# อยู่แล้ว ดังนั้น จึงสามารถ นาไปกาหนดให้แก่ตัวแปรได้เลย เช่น

ข้อมูลชนิด CHAR

      ข้อมูลชนิดนี้จะกาหนดเป็นอักขระใดๆ เพียง 1 ตัว ซึ่งเราต้องเขียนอักขระ นั้นไว้ในเครื่องหมาย Single Quote (‘ ‘) เช่น
      
     อย่างไรก็ตาม สาหรับข้อมูลชนิด char นี้ บางครั้งก็อาจไม่สะดวกต่อการ ใช้งานมากนัก ซึ่งเราสามารถเปลี่ยนเป็นชนิด string แทนได้ เช่น

ข้อมูลชนิดสตริง

         สตริง คือ ข้อมูลที่เป็นสายอักขระ หรือเป็นการนำอักขระแต่ละตัวมาวางเรียงต่อกัน เช่น คำว่า “Visual” เกิดจากอักขระ V + I + s + u + a + l เป็นต้น โดยสตริงอาจมีความยาวเท่าไหร่ก็ได้ และจากการที่เราไม่จำเป็นต้องเขียนอักขระทุกตัวติดกันไป จนจบสตริงเหมือนกับการเขียนตัวเลข จึงทำให้
โปรแกรมไม่สามารถตัดสินใจได้ว่า สตริงนั้นเริ่มต้นและสิ้นสุดที่ใด ดังนั้นการกำหนดข้อมูลที่เป็นสตริง เราต้องกำหนดจุดเริ่มต้นและสิ้นสุดของมันด้วยเครื่องหมาย Double Quotes (“ “) เสมอ เช่น
       ในกรณีที่สตริงนั้นจาเป็นต้องมีเครื่องหมาย Double Quotes รวมอยู่ด้วยก็ให้เขียนเครื่องหมายแบ็คสแลช ( \ ) ไว้หน้าเครื่องหมาย Double Quotes นั้น เช่น หากต้องการให้ตัวแปร a จะมีค่าเป็น
I choose “VC#” for .NET programming จะเขียนดังนี้