งบการตัดสินใจ
การตัดสินใจมีความสำคัญต่อการเขียนโปรแกรมคอมพิวเตอร์ จะมีหลายสถานการณ์ที่คุณจะได้รับสองตัวเลือกขึ้นไปและคุณจะต้องเลือกตัวเลือกตามเงื่อนไขที่กำหนด ตัวอย่างเช่นเราต้องการพิมพ์คำพูดเกี่ยวกับนักเรียนตามเครื่องหมายที่ปลอดภัยของเขา ต่อไปนี้คือสถานการณ์ -
Assume given marks are x for a student:
If given marks are more than 95, then
Student is brilliant
If given marks are less than 30, then
Student is poor
If given marks are less than 95 and more than 30, then
Student is average
ตอนนี้คำถามคือจะเขียนโค้ดโปรแกรมเพื่อจัดการสถานการณ์ดังกล่าวได้อย่างไร ภาษาโปรแกรมเกือบทั้งหมดให้คำสั่งเงื่อนไขที่ทำงานตามแผนภาพการไหลต่อไปนี้ -
มาเขียนโปรแกรม C ด้วยความช่วยเหลือของ if conditional statements เพื่อแปลงสถานการณ์ที่กำหนดข้างต้นเป็นรหัสโปรแกรม -
#include <stdio.h>
int main() {
int x = 45;
if( x > 95) {
printf( "Student is brilliant\n");
}
if( x < 30) {
printf( "Student is poor\n");
}
if( x < 95 && x > 30 ) {
printf( "Student is average\n");
}
}
เมื่อโปรแกรมด้านบนถูกเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -
Student is average
โปรแกรมข้างต้นใช้ if conditional statements. ที่นี่ที่แรกif statementตรวจสอบว่าเงื่อนไขที่กำหนดเช่นตัวแปร x มีค่ามากกว่า 95 หรือไม่และหากพบว่าเงื่อนไขเป็นจริงระบบจะป้อนเนื้อความเงื่อนไขเพื่อดำเนินการคำสั่งที่กำหนด ที่นี่เรามีคำสั่งprintf () เพียงคำสั่งเดียวเพื่อพิมพ์คำพูดเกี่ยวกับนักเรียน
ในทำนองเดียวกันที่สอง if statementได้ผล ประการที่สามif statement ถูกดำเนินการที่นี่เรามีสองเงื่อนไขต่อไปนี้ -
เงื่อนไขแรกคือ x > 95
เงื่อนไขที่สองคือ x < 30
คอมพิวเตอร์จะประเมินทั้งสองเงื่อนไขที่กำหนดจากนั้นผลลัพธ์โดยรวมจะถูกรวมเข้ากับความช่วยเหลือของตัวดำเนินการไบนารี &&. หากผลลัพธ์สุดท้ายเป็นจริงคำสั่งเงื่อนไขจะถูกดำเนินการมิฉะนั้นจะไม่มีการดำเนินการคำสั่งใด ๆ
บทช่วยสอนนี้จะให้แนวคิดพื้นฐานเกี่ยวกับรูปแบบต่างๆ if statements และข้อมูลเบื้องต้นเกี่ยวกับ switchคำสั่งที่มีอยู่ในภาษาโปรแกรม C ภาษาการเขียนโปรแกรมที่แตกต่างกันมีข้อความประกอบการตัดสินใจประเภทต่างๆ แต่แนวคิดพื้นฐานยังคงเหมือนกับที่อธิบายไว้ในบทช่วยสอนนี้
if ... else คำสั่ง
อัน if ตามด้วยคำสั่งก็ได้ elseคำสั่งซึ่งดำเนินการเมื่อนิพจน์บูลีนเป็นเท็จ ไวยากรณ์ของไฟล์if...else คำสั่งในการเขียนโปรแกรมภาษาซีคือ -
if(boolean_expression) {
/* Statement(s) will execute if the boolean expression is true */
} else {
/* Statement(s) will execute if the boolean expression is false */
}
ไวยากรณ์ข้างต้นสามารถแสดงในรูปแบบของโฟลว์ไดอะแกรมดังที่แสดงด้านล่าง -
อัน if...elseคำสั่งมีประโยชน์เมื่อเราต้องตัดสินใจจากสองทางเลือก ตัวอย่างเช่นหากนักเรียนได้คะแนนมากกว่า 95 แสดงว่านักเรียนนั้นเก่งไม่เช่นนั้นจะไม่สามารถเข้ารหัสสถานการณ์ดังกล่าวได้ดังนี้ -
#include <stdio.h>
int main() {
int x = 45;
if( x > 95) {
printf( "Student is brilliant\n");
} else {
printf( "Student is not brilliant\n");
}
}
เมื่อโปรแกรมด้านบนถูกเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -
Student is not brilliant
if ... elseif ... else คำสั่ง
อัน if ตามด้วยคำสั่งก็ได้ else if...else คำสั่งซึ่งมีประโยชน์มากในการทดสอบเงื่อนไขต่างๆ
ขณะใช้งาน if, else if, else มีบางประเด็นที่ควรทราบ -
อัน if สามารถมีศูนย์หรือหนึ่ง else's และมันจะต้องมาหลังจาก else if.
อัน if สามารถมีศูนย์ถึงมาก else…if's และพวกเขาต้องมาก่อน else.
ครั้งเดียว else…if ประสบความสำเร็จไม่มีที่เหลือ else…if's หรือ else's จะถูกทดสอบ
ไวยากรณ์ของไฟล์ if...else if...else คำสั่งในการเขียนโปรแกรมภาษาซีคือ -
if(boolean_expression 1) {
/* Executes when the boolean expression 1 is true */
}
else if( boolean_expression 2) {
/* Executes when the boolean expression 2 is true */
}
else if( boolean_expression 3) {
/* Executes when the boolean expression 3 is true */
} else {
/* Executes when the none of the above condition is true */
}
ตอนนี้ด้วยความช่วยเหลือของ if...elseif...else คำสั่งโปรแกรมแรกสามารถเข้ารหัสได้ดังนี้ -
#include <stdio.h>
int main() {
int x = 45;
if( x > 95) {
printf( "Student is brilliant\n");
}
else if( x < 30) {
printf( "Student is poor\n");
}
else if( x < 95 && x > 30 ) {
printf( "Student is average\n");
}
}
เมื่อโปรแกรมด้านบนถูกเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -
Student is average
คำสั่ง Switch
ก switch คำสั่งเป็นอีกทางเลือกหนึ่งของ if statementsซึ่งช่วยให้สามารถทดสอบตัวแปรเพื่อความเท่าเทียมกับรายการค่าได้ แต่ละค่าเรียกว่า acaseและตัวแปรที่เปิดอยู่จะถูกตรวจสอบสำหรับเคสสวิตช์แต่ละตัว มีไวยากรณ์ต่อไปนี้ -
switch(expression){
case ONE :
statement(s);
break;
case TWO:
statement(s);
break;
......
default :
statement(s);
}
expression ใช้ใน switchคำสั่งต้องให้ค่าจำนวนเต็มซึ่งจะถูกเปรียบเทียบเพื่อความเท่าเทียมกับกรณีต่างๆที่กำหนด เมื่อใดก็ตามที่ค่านิพจน์ตรงกับค่าเคสเนื้อความของเคสนั้นจะถูกดำเนินการและสุดท้ายสวิตช์จะถูกยกเลิกโดยใช้ abreakคำให้การ. หากไม่มีการระบุคำสั่งแบ่งแสดงว่าคอมพิวเตอร์ยังคงดำเนินการคำสั่งอื่น ๆ ที่มีอยู่ด้านล่างนี้ไปยังกรณีที่ตรงกัน หากไม่มีกรณีใดที่ตรงกันระบบจะดำเนินการตัวเคสเริ่มต้น
ไวยากรณ์ข้างต้นสามารถแสดงในรูปแบบของโฟลว์ไดอะแกรมดังที่แสดงด้านล่าง -
ตอนนี้ลองพิจารณาอีกตัวอย่างหนึ่งที่เราต้องการเขียนคำภาษาอังกฤษที่เทียบเท่ากับตัวเลขที่กำหนด จากนั้นสามารถเข้ารหัสได้ดังนี้ -
#include <stdio.h>
int main() {
int x = 2;
switch( x ){
case 1 :
printf( "One\n");
break;
case 2 :
printf( "Two\n");
break;
case 3 :
printf( "Three\n");
break;
case 4 :
printf( "Four\n");
break;
default :
printf( "None of the above...\n");
}
}
เมื่อโปรแกรมด้านบนถูกเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -
Two
การตัดสินใจใน Java
ต่อไปนี้เป็นโปรแกรมเทียบเท่าที่เขียนด้วย Java ซึ่งรองรับเช่นกัน if, if...else, if...elseif...elseและ switch งบ.
คุณสามารถลองรันโปรแกรมต่อไปนี้เพื่อดูผลลัพธ์ซึ่งต้องเหมือนกับผลลัพธ์ที่สร้างโดยตัวอย่าง C ด้านบน
public class DemoJava {
public static void main(String []args) {
int x = 45;
if( x > 95) {
System.out.println( "Student is brilliant");
}
else if( x < 30) {
System.out.println( "Student is poor");
}
else if( x < 95 && x > 30 ) {
System.out.println( "Student is average");
}
}
}
เมื่อโปรแกรมด้านบนถูกเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -
Student is average
การตัดสินใจใน Python
ต่อไปนี้เป็นโปรแกรมเทียบเท่าที่เขียนด้วย Python Python ให้if, if...else, if...elif...elseและ switchงบ. ที่นี่คุณต้องทราบว่า Python ไม่ได้ใช้วงเล็บปีกกาสำหรับเนื้อหาแบบมีเงื่อนไข แต่เพียงแค่ระบุเนื้อหาของบล็อกโดยใช้การเยื้องของข้อความ
คุณสามารถลองรันโปรแกรมต่อไปนี้เพื่อดูผลลัพธ์ -
x = 45
if x > 95:
print "Student is brilliant"
elif x < 30:
print "Student is poor"
elif x < 95 and x > 30:
print "Student is average"
print "The end"
เมื่อโปรแกรมด้านบนถูกเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -
Student is average
The end