nextsterpp
ดู Blog ทั้งหมด

โครงสร้างการเลือกทำ ในภาษา C++ / Selection structure of c++

เขียนโดย nextsterpp
บทความเรื่อง โครงสร้างการเลือกทำ ในภาษา C++
ในทุกโปรแกรมภาษานั้นสิ่งที่สำคัญที่ ขาดไม่ได้เลยคือการเลือกทำ ทั้งนี้เพื่อเลือกว่าเมื่อเกิดเหตุการณ์ไดแล้วจะทำอะไร ซึ่งหลักการที่เป็นพื้นฐานที่สุดก็คือ เมื่อเหตุการณ์เป็นจริงแล้วทำอะไรบ้าง และในภาษา C++ การเลือกทำจัดได้เป็น 3 โครงสร้างใหญ่ ๆ คือ 1.โครงสร้างการเลือกทำแบบ IF 2. การเลือกทำแบบ IF…ELSE และ 3.การเลือกทำแบบ Switch โดยทั้ง 3 โครงสร้างนั้นอิงหลักการเดียวกัน ซึ่งในบางครั้งอาจเลือกใช้แทนกันได้ ซึ่งจะอธิบายทั้ง 3 โครงสร้างดังต่อไปนี้

1.โครงสร้างการเลือกทำแบบ if คือ " if (ตรรกะ) then {คำสั่งเมื่อตรรกะเป็นจริง} "
เช่น if(1 < 2) then printf(“1 น้อยกว่า 2”); เป็นต้น
ดังนี้เราจะเห็นได้ว่าหากเป็นกรณีที่การเปรียบค่าง่าย ๆ แล้ว เพียงโครงสร้างของ if ก็เพียงพอที่จะใช้ทำการเลือก แต่ในความเป็นจริงแล้วในการเขียนโปรแกรมนั้น ส่วนมากจะมีการเปรียบเทียบ
ในหลาย ๆ ทางเลือกการใช้ if จึงมักถูกใช้ซ้อน ๆ กัน เช่นตัวอย่างการเลือกเพศโดยการรับค่าผ่านตัวแปร sex หากเลือกเป็น 'ช' ให้ไปพิมพ์ออกมาทางหน้าจอว่า 'เพศชาย' และถ้าเลือก 'ญ' ให้พิมพ์ออกมาว่า 'เพศหญิง' การเขียนโปรแกรมในลักษณะนี้ก็เช่น
if (sex == "ช") printf("เพศชาย n");
if (sex == "ญ") printf("เพศหญิง n");
*หมายเหตุ:ส่วนมากการเปรียบเทียบ if หรือ if...else ไม่นิยมเขียน then *

2.โครงสร้างการเลือกทำแบบ if…else เมื่อเราพิจารณาการเลือกทำแบบ if นั้นเราจะเห็นข้อบกพร่องว่า หากการเลือกนั้นไม่ตรงตามที่ระบุไว้ใน if แล้ว โปรแกรมอาจทำงานผิดพลาดได้ ฉะนั้นเพื่อแก้ปัญหาเหล่านี้จึงมีการสร้างโครงสร้างการเลือกอีกแบบหนึ่งคือ
if...else นี้โดยโครงสร้างนั้นมีรูปแบบดังนี้
if (ตรรกะ) then {คำสั่งเมื่อตรรกะเป็นจริง} else {คำสั่งเมื่อตรรกะเป็นเท็จ}
เช่น if(1 < 2) then printf(“1 น้อยกว่า 2”); else printf(“1 ไม่น้อยกว่า 2”); เป็นต้น
และเมื่อหากเรานำไปใช้กับเรื่องเลือกเพศเราจะแก้ปัญหาของการเลือกแบบ if ที่จะเกิดขึ้นเมื่อผู้ใช้ไม่ได้เลือก 'ช' หรือ 'ญ' ได้ดังนี้
if (sex == "ช")
printf("เพศชาย n");
else if (sex == "ญ")
printf("เพศหญิง n");
else printf("ไม่ได้ทำการระบุเพศ n");

3.โครงสร้างการเลือกทำแบบ Switch เมื่อเขียนโปรแกรมไปเรื่อย ๆ อาจพบว่าบางครั้งการเปรียบเทียบค่าอาจมีมากกว่า 2 หรือ 3 ค่า และหากเราใช้ if รหือ if...else ในการเขียนโปรแกรมนั้นก็ทำได้เหมือนกัน
เพียงแต่ว่าบางครั้งอาจทำให้โปรแกรมยุ่งยากและดูยากเกินไป ปัญหาดังนี้แล้ว การเลือกทำแบบหลาย ๆ ทางเลือกแบบ switch จึงเกิดขึ้นโดยมีโครงสร้างเป็น
switch(ค่าเปรียบเทียบ)
{
case ค่าแบบที่ 1 : คำสั่งเมื่อค่าตรงกับแบบที่ 1;
case ค่าแบบที่ 2 : คำสั่งเมื่อค่าตรงกับแบบที่ 2;
default : ค่าปกติ
}
เช่น หากในโปรแกรมเราถ้าผู้ใช้เลือกเป็น 'ช' 'M' หรือ 'm' ให้พิมพ์ออกมาทางหน้าจอว่า 'เพศชาย' และหากเลือก 'ญ' 'F' หรือ 'f' ให้พิมพ์ออกมาว่า 'เพศพญิง' เราสามาถใช้โครงสร้างแบบ switch เขียนให้อ่านง่ายขึ้นได้ดังนี้
switch(getsex)
{
case "ช" : printf(“เพศชาย n”);
case "M" : printf(“เพศชาย n”);
case "m" : printf(“เพศชาย n”);
case "ญ" : printf(“เพศหญิง n”);
case "F" : printf(“เพศหญิง n”);
case "f" : printf(“เพศหญิง n”);
defult : printf(“ไม่ระบุเพศ”);
}

บทความนี้นำเสนอโดย นักศึกษา มหาวิทยาลัยวลัยลักษณ์ MIT11 กลุ่ม 3 {นายวัชรินทร์ หาญศิริรัตนกุล, นายวิมล จันทร์เกิด, นายศุภชัย ตั้งรัศมี} และหากมีโอกาศจะนำเสนอบทความที่ซับซ้อนขึ้นตามลำดับต่อไป
ขอขอบคุณ
GeneratorSolar PowerWind GeneratorsWind GeneratorGeneracPortable GeneratorsWind Power GeneratorsPortable GeneratorOnan GeneratorsPropane GeneratorGenerac GeneratorsYamaha GeneratorsColeman GeneratorsOnan Generator PartsElectric GeneratorHome Solar PowerDiesel GeneratorGenerac GeneratorDiesel GeneratorsOnan GeneratorRv GeneratorsDiesel Backup GeneratorsYamaha GeneratorHome GeneratorsSolar Power SystemsColeman GeneratorPropane GeneratorsRv GeneratorGas GeneratorNatural Gas GeneratorsOnan Generator ManualStandby GeneratorsGenerator Transfer SwitchPto GeneratorHonda Portable GeneratorsGenerac Portable GeneratorsKipor GeneratorsGas Powered GeneratorColeman Generator ManualGas GeneratorsHome GeneratorSolar Power KitsElectric GeneratorsStandby GeneratorGenerac Pressure WasherPortable Solar PowerColeman Powermate GeneratorUsed GeneratorsPto GeneratorsHome Wind GeneratorEmergency GeneratorsQuiet GeneratorsSolar Power GeneratorPortable Electric GeneratorInverter GeneratorHome Wind GeneratorsElectric Power GeneratorNatural Gas GeneratorResidential Solar PowerSolar Power SystemGenerac Pressure WashersGenerac Generator ManualsSolar Power For HomesBriggs And Stratton GeneratorsMarine GeneratorsPortable Generator RvGenerac Power SystemsSmall Wind GeneratorsWind Turbine Generator3 Phase GeneratorBackup GeneratorCummins GeneratorCamping GeneratorEmergency PowerOnan Generator RepairSolar Power CarsEmergency GeneratorHonda Portable GeneratorPortable Diesel GeneratorsPortable Solar GeneratorsInverter GeneratorsSolar Power EnergyWind Turbine GeneratorsCamping GeneratorsOnan Rv GeneratorPortable Generators GasPortable Propane GeneratorResidential Wind GeneratorsWind Generator Charge ControllerColeman Generator Repair ManualKipor GeneratorWind Generator KitsPortable Gas GeneratorsSmall Wind GeneratorWind Powered GeneratorsHome Standby GeneratorsPortable Diesel GeneratorYamaha Generator PartsBest Home GeneratorsKipor Diesel GeneratorsBlogBlogBlogBlogBlog

ความคิดเห็น

ความคิดเห็นที่ 1
ดีจังเลย แต่ม่ายรุเรื่อง
ความคิดเห็นที่ 2
ก็ดีขึ้นมาหน่อยนะ
ความคิดเห็นที่ 3
นู๋ชอบแต่ชอบแบบอินดี้มมากกว่า
ความคิดเห็นที่ 4
รักนะชอบดีอ่านรุเรื่อง
ความคิดเห็นที่ 5
อ่านเเร้วเข้าจัยนะ
ความคิดเห็นที่ 6
ไอ้เราก้อ งง ปาย
ความคิดเห็นที่ 7
นู๋ก้องง นิดนิด