ตัวดำเนินการ ภาษา c 2

ลำดับความสำคัญของOperator        จาก ตัวดำเนินการ ภาษา c ในบททีแล้วครั้งนี้ผมจะมาพูดถึงเรื่องลำดับความสำคัญของการทำงาน เจ้า โอเปอเรเตอร์นะครับ เพราะเจ้า โอเปอร์เรเตอร์นี้มันก็เลือกนะครับว่ามันจะเริ่มทำงานจากตัวใหนก่อน เมื่ออยู่ในบรรทัดเดียวกันเช่น  3+8*12/2-6=?อะไรยังงี้ คุณลองคิดดุซิว่ามันจะ ได้ผลลัพธ์เป็นเท่าไร  อะๆๆๆๆ ท่าคิดได้ว่าเป็น 60 ก็ถือว่าคุณ…. คิดผิดแล้วครับ  คำตอบมันก็คือ  45 ครับ ถ้าใครคิด 45 ก็แปลว่าท่านนั้นต้องเป็นนักเขียนโปรแกรมแล้วละครับ เพราะบทนี้ก็ยังอยู่ในขึ้นต้น ทำไมผมถึงให้ความสำคัญในขั้นต้นมาก เพราะ ท่าพื้นดี เราก็จะได้ไม่ลื่อไงครับ ท่าไม่แน่เดียวน็อคได้นะครับ ก็เลยต้องสำคัญหน่อย เอาละเราต่อเริ่มต่อจากบท ตัวดำเนินการ ภาษา c ที่แล้วกันเลยนะครับ

เนื่องจากโอเปอเรเตอร์มีอยู่กันหลายชนิดดังนั้นภาษาซีจึงได้กำหนดลำดับความสำคัญของการทำงานของ โอเปอเรเตอร์(Operator) ขึ้นดังกล่าวต่อไปนี้นี้

ตารางลำดับความสำคัญของOperator

ลำดับความสำคัญจากมากสุดไปน้อยสุด โอเปอเรเตอร์

ภาษา c

( )
++, --
-(เครื่องหมายลบอยู่หน้าตัวเลข)
*, / , %
+ , -

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

เอาเป็นว่าเรามาดูตัวอย่างการทำงานของมันเลยดีกว่าครับ

C Language Operator Ex1 จงหานิพจน์ 8+5*10

วิธีทำ
1.สังเกตที่ตัวโอเปอเรเตอร์ก่อนเสมอว่ามีโอเปอเรเตอร์อะไรบ้าง ในที่นี้มีโอเปอเรเตอร์+ และ*
2.ทำการไล่ลำดับความสำคัญของโอเปอเรเตอร์ทั้งหมดโดยเปรียบเทียบโอเปอเรเตอร์ว่าตัวใหนมีความสัญคัญมากที่สุดแล้วก็จึงทำตัวนั้นก่อนและก็ไล่ทำไปจนถึงโอเปอเรเตอร์ตัวสำคัญท้ายสุด

ลำดับความสำคัญจากมากสุดไปน้อยสุด โอเปอเรเตอร์

ภาษา c

*
+

3.จากข้อ 2. เราจะวิเคราะห์ได้ตามนี้  เราก็จะทำ 5*10 ก่อนผลที่ได้ ก็ค่อยนำไปบอกกับ8 ก็จะเป็น 50+8 ผล ของนิพจน์ตัวนี้ จะ เท่ากับ 58 ครับ

ตัวอย่างต่อไปนี้ผมจะนำเอาโอเปอเรเตอร์ ที่สำคัญเท่ากันกันมากกระทำในนิพจน์เดียวกันนะครับ เรามาดูว่าการทำงานของมันจะมีค่าเท่าได้

C Language Operator Ex2 จงหานิพจน์ 1 * 8 / 8 * 6 % 4 มีค่าเท่าใด

วิธีทำ ก็คล้ายๆตัวอย่างที่หนึ่ง แต่ลำดับความสำคัญเจ้า C Language Operator Ex2 นี้มันมีโอเปอเรเตอร์ที่มีลำดับความสำคัญเท่ากัน เพราะฉนั้นก็ง่ายครับ เพราะท่ามันเป็นแบบนี้มันจะดำเนินการจาก ซ้าย ไป ขาว  ก็คือ   1*8=  8  แล้วนำ 8 ไปกำทำกับ โอเปอเรเตอร์ตัวต่อไป จนถึงขาวสุด เราก็จะได้คำตอบ ออกมา เห็นภาพกันมัยครับ ท่าไม่งันเดียวผมจะทำให้ดูนะครับ

ขั้นที่1   1 * 8 = 8

ขั้นที่2   ค่าที่ได้จากขั้นที่ 1 นำมา  / 8
            = 8 / 8 = 1

ขั้นที่3  ค่าที่ได้จากขั้นที่ 2 นำมา  * 6
           = 1 * 6 = 6

ขั้นที่4  ค่าที่ได้จากขั้นที่ 3 นำมา % 4
           = 6%4 = 2 (เพราะเอาเศษจากการหาร)

สรุป เพราะฉนั้น ตัวอย่าง C Language Operator Ex2 ข้อนี้จึงมีค่าท่ากับ
1 * 8 / 8 * 6 % 4  = 2 ครับ  ท่าเป็นตัวแปรก็ทำเช่นเดียวกันนะครับ

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

>> ตัวดำเนินการ 3 ภาษา c

0 ความคิดเห็น:

แสดงความคิดเห็น