ตามที่ enderland ได้พูดไปแล้วคุณกำลังสมมติว่าคุณมี "ผลตอบแทน" หนึ่งครั้งเป็นการกระทำและคุณสามารถติดแท็ก "คืนค่า" นั้นไปยังจุดสิ้นสุดของเงื่อนไข ฉันต้องการให้รายละเอียดเพิ่มเติมว่าทำไมสิ่งนี้จึงไม่ประสบความสำเร็จ
ฉันไม่รู้ว่าภาษาที่คุณชอบคืออะไร แต่ฉันเขียนโค้ดเป็นภาษา C มานานแล้ว มีมาตรฐานการเข้ารหัสจำนวนมากที่มีจุดมุ่งหมายเพื่อหลีกเลี่ยงข้อผิดพลาดการเข้ารหัสมาตรฐานโดยไม่อนุญาตการสร้างรหัสที่มีแนวโน้มที่จะเกิดข้อผิดพลาดไม่ว่าจะเป็นการเข้ารหัสเริ่มต้นหรือในระหว่างการบำรุงรักษาในภายหลัง ฉันคุ้นเคยกับ MISRA-C มากที่สุด แต่ก็มีคนอื่น ๆ และโดยทั่วไปพวกเขาก็มีกฎที่คล้ายกันเพราะพวกเขาพูดถึงปัญหาเดียวกันในภาษาเดียวกัน
ข้อผิดพลาดที่นิยมอย่างหนึ่งซึ่งมาตรฐานการเข้ารหัสมักจะกล่าวถึงคือ gotcha ตัวเล็ก ๆ นี้: -
if (x == 10)
do_something();
do_something_else();
สิ่งนี้ไม่ได้ทำในสิ่งที่คุณคิด เท่าที่ C เป็นห่วงถ้า x 10 แล้วคุณเรียกdo_something()
แต่แล้วdo_something_else()
ได้รับการเรียกโดยไม่คำนึงถึงความคุ้มค่าของ x เฉพาะการกระทำที่ตามหลังคำสั่ง "ถ้า" เป็นเงื่อนไขเท่านั้น นี่อาจเป็นสิ่งที่ coder ตั้งใจซึ่งในกรณีนี้อาจมีกับดักสำหรับผู้ดูแล หรืออาจไม่ใช่สิ่งที่ coder ตั้งใจซึ่งในกรณีที่มีข้อผิดพลาด มันเป็นคำถามสัมภาษณ์ที่ได้รับความนิยม
วิธีแก้ปัญหาในมาตรฐานการเข้ารหัสคือการใช้เครื่องหมายปีกการอบการกระทำแบบมีเงื่อนไขทั้งหมดแม้ว่าจะเป็นแบบบรรทัดเดียวก็ตาม เราได้รับแล้ว
if (x == 10)
{
do_something();
do_something_else();
}
หรือ
if (x == 10)
{
do_something();
}
do_something_else();
และตอนนี้มันทำงานได้อย่างถูกต้องและชัดเจนสำหรับผู้ดูแล
คุณจะสังเกตเห็นว่าสิ่งนี้ขัดกับรูปแบบตารางของคุณทั้งหมด
ภาษาอื่นบางภาษา (เช่น Python) ดูที่ปัญหานี้และตัดสินใจว่าเนื่องจากตัวแปลงสัญญาณกำลังใช้ช่องว่างเพื่อทำให้รูปแบบชัดเจนจึงควรใช้ช่องว่างแทนวงเล็บปีกกา ดังนั้นใน Python
if x == 10:
do_something()
do_something_else()
ทำให้การเรียกทั้งสองdo_something()
และdo_something_else()
มีเงื่อนไขใน x == 10 ในขณะที่
if x == 10:
do_something()
do_something_else()
หมายความว่าdo_something()
เป็นเงื่อนไขบน x และdo_something_else()
ถูกเรียกเสมอ
เป็นแนวคิดที่ถูกต้องและคุณจะพบว่ามีบางภาษาที่ใช้งานได้ (ฉันเห็นเป็นครั้งแรกใน Occam2 เมื่อไม่นานมานี้) อีกครั้งคุณสามารถเห็นได้อย่างง่ายดายว่ารูปแบบตารางของคุณไม่สอดคล้องกับภาษา