การตัดสินใจและการแตกสาขาในการเขียนโปรแกรม C?

Kar Tadsin Ci Laea Kar Taek Sakha Ni Kar Kheiyn Porkaerm C



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

การตัดสินใจในการเขียนโปรแกรม C คืออะไร?

ในการเขียนโปรแกรมภาษาซี การตัดสินใจ เป็นทักษะหลักที่โปรแกรมเมอร์จำเป็นต้องมีเพื่อสร้างโปรแกรมที่มีประสิทธิภาพ การตัดสินใจคือกระบวนการประเมินเงื่อนไขต่างๆ และเลือกแนวทางปฏิบัติที่ดีที่สุดโดยพิจารณาจากผลลัพธ์ที่ได้ ด้วยคำสั่ง if-else การตัดสินใจ ถูกนำมาใช้ใน C การตัดสินใจขึ้นอยู่กับเงื่อนไขและทำโดยใช้คำสั่ง if-else ถ้าเงื่อนไขเป็นจริง รหัสจะทำงาน; ในทางกลับกัน หากเป็นเท็จ รหัสที่อยู่ในคำสั่ง else จะถูกเรียกใช้

Branching ในการเขียนโปรแกรม C คืออะไร?

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







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



การตัดสินใจและการแตกแขนงในการเขียนโปรแกรมภาษาซี

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



ในการเขียนโปรแกรมภาษาซี การตัดสินใจ , และ การแตกแขนง ทำได้ผ่าน:





  • ถ้างบ
  • คำสั่ง if-else
  • เปลี่ยนคำสั่ง
  • ซ้อนถ้า
  • อื่นถ้าบันได
  • งบแตก
  • ต่อคำชี้แจง

1: ถ้าคำสั่ง

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

ไวยากรณ์สำหรับ ถ้าคำสั่ง เป็น:



ถ้า ( เงื่อนไข )
{
กลุ่มข้อความ;
}

ดูรหัสด้านล่าง:

#รวม
int หลัก ( )
{
หมายเลข int = ยี่สิบ ;
ถ้า ( ในหนึ่ง > 5 )
{
พิมพ์ฉ ( 'จำนวนมากกว่า 5 \n ' ) ;
}
พิมพ์ฉ ( 'ค่าของตัวเลขคือ: %d \n ' ในหนึ่ง ) ;
กลับ 0 ;
}

โค้ดด้านบนกำหนดตัวแปร “ ในหนึ่ง ” โดยมีค่าเท่ากับ 20 และใช้คำสั่ง if เพื่อตรวจสอบว่ามีค่ามากกว่า 5 หรือไม่ ถ้าใช่ โปรแกรมจะพิมพ์ “ จำนวนมากกว่า 5 “. สุดท้ายก็พิมพ์ค่าของ “ ในหนึ่ง “.

เอาต์พุต

2: คำสั่ง if-else

คำสั่ง if-else เป็นการแก้ไขคำสั่ง if ที่อนุญาตให้ดำเนินการบล็อกรหัสต่างๆ โดยขึ้นอยู่กับว่าเงื่อนไขเป็นจริงหรือเท็จ

ถ้า ( เงื่อนไข ) {
// รหัสเพื่อดำเนินการ ถ้า เงื่อนไขคือ จริง
} อื่น {
// รหัสเพื่อดำเนินการ ถ้า เงื่อนไขคือ เท็จ
}

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

พิจารณารหัสต่อไปนี้เป็นตัวอย่าง:

#รวม
int หลัก ( )
{
หมายเลข int = 10 ;
ถ้า ( ในหนึ่ง > 5 )
{
พิมพ์ฉ ( 'จำนวนมากกว่า 5 \n ' ) ;
} อื่น {
พิมพ์ฉ ( 'จำนวนน้อยกว่า 10' ) ;
}
กลับ 0 ;
}

โปรแกรมด้านบนสร้างตัวแปร num และให้ค่าเป็น 10 จากนั้นใช้ an ถ้างบ จะเป็นตัวกำหนดว่า “ ในหนึ่ง ” มีค่ามากกว่า 5 ส่วน “ num มีค่ามากกว่า 5 ” ถูกพิมพ์ถ้า “ ในหนึ่ง ” เกิน 5 จะแสดง “ ตัวเลขน้อยกว่า 10 ” ถ้าตัวเลขไม่เกิน 5 โปรแกรมจะส่งกลับ 0 แสดงว่าทำงานสำเร็จแล้ว

เอาต์พุต

3: เปลี่ยนคำสั่ง

อีกหนึ่งเครื่องมือสำคัญสำหรับ การตัดสินใจ ในการเขียนโปรแกรม C คือ สวิตช์ คำแถลง. เดอะ สวิตช์ ตรวจสอบคำสั่งสำหรับเงื่อนไขเฉพาะเช่น คำสั่ง if-else ทำ แต่สามารถตรวจสอบความเป็นไปได้หลายประการสำหรับเงื่อนไขนั้น สิ่งนี้มีประโยชน์เมื่อเราจัดการกับผลลัพธ์ที่แตกต่างกันมากมาย

ไวยากรณ์สำหรับการใช้ เปลี่ยนคำสั่ง ในการเขียนโปรแกรม C คือ:

สวิตช์ ( การแสดงออก ) {
กรณี ค่าคงที่ 1:
// รหัสเพื่อดำเนินการ ถ้า นิพจน์เท่ากับค่าคงที่1
หยุดพัก ;
กรณี ค่าคงที่ 2:
// รหัสเพื่อดำเนินการ ถ้า นิพจน์เท่ากับค่าคงที่2
หยุดพัก ;
...
ค่าเริ่มต้น:
// รหัสเพื่อดำเนินการ ถ้า ไม่มีกรณีใดที่ตรงกัน
หยุดพัก ;
}

การแสดงออก เป็นตัวแปรที่ถูกประเมินในกรณีนี้ และ คำชี้แจงกรณี รวมถึงค่าที่ถูกเปรียบเทียบด้วย

พิจารณารหัสต่อไปนี้เป็นตัวอย่าง:

#รวม

int หลัก ( ) {
หมายเลข int = 2 ;
สวิตช์ ( ในหนึ่ง ) {
กรณี 1 :
พิมพ์ฉ ( 'เลขคือ 1' ) ;
หยุดพัก ;
กรณี 2 :
พิมพ์ฉ ( 'เลขคือ 2' ) ;
หยุดพัก ;
กรณี 3 :
พิมพ์ฉ ( 'เลขคือ 3' ) ;
หยุดพัก ;
ค่าเริ่มต้น:
พิมพ์ฉ ( 'หมายเลขอื่นที่ไม่ใช่ 1, 2 และ 3' ) ;
หยุดพัก ;
}
กลับ 0 ;
}

โปรแกรมข้างต้นแสดงวิธีการใช้คำสั่ง switch เพื่อตรวจสอบค่าของตัวแปร “ ในหนึ่ง ” และเรียกใช้บล็อกรหัสที่เกี่ยวข้อง ในกรณีนี้ เนื่องจาก “ ในหนึ่ง ” เริ่มต้นเป็น 2 เอาต์พุตจะเป็น “ จำนวนคือ 2 “.

เอาต์พุต

4: ซ้อนถ้า

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

ไวยากรณ์พื้นฐานสำหรับ ซ้อนกันถ้าคำสั่ง ได้รับด้านล่าง:

ถ้า ( เงื่อนไข ) {
ถ้า ( การแสดงออก ) {
กลุ่มข้อความ;
} อื่น {
กลุ่มข้อความ;
}
} อื่น {
กลุ่มข้อความ;
}

พิจารณารหัสต่อไปนี้เป็นตัวอย่าง:

#รวม

int หลัก ( ) {
int num1 = 1 ;
int num2 = สิบห้า ;
int num3 = 7 ;

ถ้า ( หมายเลข 1 > หมายเลข 2 ) {
ถ้า ( หมายเลข 1 > หมายเลข 3 ) {
พิมพ์ฉ ( 'num1=1 คือจำนวนที่มากที่สุด \n ' ) ;
}
อื่น {
พิมพ์ฉ ( 'num3=7 คือจำนวนที่มากที่สุด \n ' ) ;
}
}
อื่น {
ถ้า ( หมายเลข 2 > หมายเลข 3 ) {
พิมพ์ฉ ( 'num2=15 คือจำนวนที่มากที่สุด \n ' ) ;
}
อื่น {
พิมพ์ฉ ( 'num3=7 คือจำนวนที่มากที่สุด \n ' ) ;
}
}

กลับ 0 ;
}

โปรแกรมข้างต้นเปรียบเทียบจำนวนเต็มสามจำนวน “ หมายเลข 1 “, “ หมายเลข 2 ', และ ' หมายเลข 3 “ และใช้คำสั่ง if ที่ซ้อนกันเพื่อระบุว่าจำนวนใดเป็นจำนวนที่มากที่สุด ก่อนอื่นจะเปรียบเทียบ “ หมายเลข 1 ' และ ' หมายเลข 2 “ จากนั้นเปรียบเทียบขนาดใหญ่กว่าของทั้งสองด้วย “ หมายเลข 3 “. เอาต์พุตจะระบุว่าตัวแปรใดมีค่ามากที่สุด

เอาต์พุต

5: อื่นถ้าบันได

เราอาจแก้ไขปัญหาที่ซับซ้อนได้อย่างง่ายดาย เมื่อมีเกณฑ์จำนวนมากเรียงตามลำดับโดยใช้ บันได-ถ้า หรือ นิพจน์อื่นถ้า .

ด้านล่างนี้เป็นไวยากรณ์สำหรับ อื่นถ้าบันได คำแถลง:

ถ้า ( เงื่อนไข1 )
{
กลุ่มข้อความ;
}
อื่น ถ้า ( เงื่อนไข2 )
{
กลุ่มข้อความ;
}
อื่น ถ้า ( เงื่อนไข3 )
{
กลุ่มข้อความ;
}
อื่น
{
คำสั่งเริ่มต้น
}

พิจารณารหัสต่อไปนี้เป็นตัวอย่าง:

#รวม

int หลัก ( ) {
เครื่องหมาย int = 80 ;

ถ้า ( เครื่องหมาย > = 90 && เครื่องหมาย = 80 && เครื่องหมาย = 70 && เครื่องหมาย = 60 && เครื่องหมาย = ห้าสิบ && เครื่องหมาย < 60 ) {
พิมพ์ฉ ( 'เกรด:D' ) ;
}
อื่น {
พิมพ์ฉ ( 'เกรด: ล้มเหลว' ) ;
}
กลับ 0 ;
}

โปรแกรมด้านบนใช้ ตรรกะ if-else เพื่อกำหนดเกรดตามค่าปัจจุบันของตัวแปร 'เครื่องหมาย' ขึ้นอยู่กับค่าของ 'เครื่องหมาย' โปรแกรมจะแสดงเกรดที่สอดคล้องกันตั้งแต่ A+ ถึง Fail

เอาต์พุต

6: ทำลายคำสั่ง

เดอะ คำสั่งทำลาย เป็นคำสั่งโฟลว์การควบคุมที่สำคัญในการเขียนโปรแกรม C ที่ช่วยให้โปรแกรมเมอร์สามารถควบคุมพฤติกรรมของลูปและคำสั่งสวิตช์ เดอะ คำสั่งทำลาย มีสองแอปพลิเคชันในการเขียนโปรแกรม C:

  • เมื่อลูปมาถึง a หยุดพัก คำสั่งจะถูกยกเลิกทันที และการควบคุมโปรแกรมจะถูกส่งไปยังคำสั่งที่ต่อจากลูป
  • สามารถใช้เพื่อยุติกรณีและปัญหาได้โดยใช้คำสั่ง switch

ไวยากรณ์สำหรับ หยุดพัก คำแถลง:

หยุดพัก ;

ดูโค้ดตัวอย่าง:

#รวม

int หลัก ( ) {
หมายเลข int = 12 ;
ในขณะที่ ( ในหนึ่ง สิบห้า ) {
หยุดพัก ;
}
}
กลับ 0 ;
}

โค้ด C ชิ้นนี้ประกาศลูป while ที่ดำเนินการตราบเท่าที่ตัวแปรจำนวนเต็ม “ ในหนึ่ง ” น้อยกว่า 22 และเริ่มต้นเป็น 12 ในลูป “ ในหนึ่ง ” จะเพิ่มขึ้น 1 และค่าจะถูกรายงานไปยังคอนโซลโดยใช้ พิมพ์ฉ . จากนั้นลูปจะจบลงด้วย a ทำลายคำสั่ง if “num” มีค่ามากกว่า 15 ตามที่กำหนดโดยคำสั่ง if รหัสนี้สิ้นสุดการวนซ้ำอย่างมีประสิทธิภาพหลังจากพิมพ์ค่า 'num' ระหว่าง 12 ถึง 15 (รวม) โปรแกรมจบลงด้วยการส่งคืน 0 ซึ่งแสดงว่าทำงานอย่างถูกต้อง

เอาต์พุต

7: ดำเนินการต่อคำชี้แจง

ในการเขียนโปรแกรมภาษาซีนั้น ดำเนินการต่อ คำสั่งจะคล้ายกับ หยุดพัก คำแถลง. แทนที่จะบังคับให้เลิกใช้งาน มันจะบังคับการวนซ้ำครั้งต่อไปและข้ามโค้ดใดๆ ที่อยู่ระหว่างนั้น การทดสอบตามเงื่อนไขของ for loop และส่วนเพิ่มจะดำเนินการโดย ดำเนินการต่อ การแสดงออก. การทดสอบตามเงื่อนไขของลูป while และ do- while นั้นผ่านการควบคุมโปรแกรมอันเป็นผลมาจาก ดำเนินการต่อ คำแถลง.

ไวยากรณ์ของ แถลงการณ์ต่อไป เป็น:

ดำเนินการต่อ ;

ดูตัวอย่างนี้

#รวม

int หลัก ( ) {
หมายเลข int = 12 ;
ในขณะที่ ( ในหนึ่ง สิบห้า ) {
ดำเนินการต่อ ;
}
}
กลับ 0 ;
}

โปรแกรมด้านบนใช้คำสั่ง while loop เพื่อพิมพ์ค่าของตัวแปร “ ในหนึ่ง ” ถ้าน้อยกว่า 22 ถ้า “ ในหนึ่ง ” เกิน 15 ในระหว่างลูป, the ดำเนินการต่อ คำสั่งถูกดำเนินการและการวนซ้ำปัจจุบันจะถูกข้ามไป ในกรณีนี้ การวนซ้ำจะดำเนินการห้าครั้ง โดยพิมพ์ค่า “num” แต่ละครั้งจนถึง “ ในหนึ่ง ” ถึง 16 และลูปข้ามการวนซ้ำโดยที่ “ ในหนึ่ง ” คือ 16 จากนั้นวนซ้ำที่เหลือต่อไปจนกว่าการวนซ้ำจะสิ้นสุดลง

เอาต์พุต

บทสรุป

การตัดสินใจ และ การแตกแขนง เป็นส่วนประกอบที่สำคัญของภาษา C ที่ช่วยให้สามารถสร้างแอปพลิเคชันเชิงโต้ตอบที่ซับซ้อนซึ่งจัดการกับสภาวะต่างๆ ในโลกแห่งความเป็นจริงได้ คำสั่งเงื่อนไข if-else และ switch เป็นกรณีหลักที่ใช้ในการสร้าง ขึ้นอยู่กับการตัดสินใจ อัลกอริทึม แม้ว่า การแตกแขนง อาจก่อให้เกิดความท้าทายในการจัดระเบียบรหัส ด้วยการวางแผนและการดำเนินการที่เหมาะสม โปรแกรมเมอร์สามารถสร้างโปรแกรมที่มีประสิทธิภาพและปราศจากข้อผิดพลาดที่ตรงตามข้อกำหนดเฉพาะ