คำสั่งเลือกเงื่อนไข

ในเรียนนี้ คุณจะได้เรียนรู้เกี่ยวกับคำสั่งเงื่อนไขในภาษา C#

คำสั่งเงื่อนไข (selection statement) เป็นคำสั่งที่ให้คุณสามารถควบคุมโปรแกรมให้ทำงานตามต้องการ ตามเงื่อนไขที่กำหนดให้

คำสั่ง If

คำสั่ง if เป็นคำสั่งเลือกพื้นฐานในการเขียนโปรแกรมในทุกๆ ภาษา มันถูกใช้เพื่อควบคุมโปรแกรมเพื่อให้คำงานในบล็อกของ if ถ้าตรงกับเงื่อนไขที่กำหนดไว้ โดยคำสั่ง if มีรูปแบบการใช้งานดังนี้

if (expression) {
// statements
}

expression คือเงื่อนไขที่คุณจะต้องกำหนดเพื่อที่จะให้โปรแกรมทำงาน ถ้า expression เป็น true โปรแกรมจะทำงานในบล็อกคำสั่งของ If ที่ล้อมรอบด้วย { และ } ถ้า expression เป็น false มันจะถูกเพิกเฉยและไปทำงานบรรทัดต่อไปหลังบล็อคของ If

string name = "Mateo";
if (name == "Mateo") {
Console.WriteLine("Welcome, Mateo!");
}

จากตัวอย่างด้านบน เราได้ใช้คำสั่ง if เพื่อตรวจสอบชื่อในตัวแปร name ว่าถ้ามันเท่ากับ "Mateo" จะทำให้ expression เป็น true และจะแสดงคำว่า "Welcome, Mateo!" ออกทางหน้าจอคอมพิวเตอร์ของคุณ คุณสามารถลองใช้กับชื่ออื่นๆ ได้

Note: การเปรียบเทียบสตริงในภาษา C# นั้นเป็นแบบ case-sensitive นั่นหมายความว่า "Mateo" และ "mateo" นั้นเป็นคนละค่ากัน

คำสั่ง If-else if

คุณสามารถใช้คำสั่ง else if สำหรับเงื่อนไขที่สองและใช้คำสั่ง else สำหรับเงื่อนไขในกรณีที่ไม่ตรงกับเงื่อนไขใดๆ ก่อนหน้าเลย

มาดูตัวอย่างกับโปรแกรมตรวจสอบเกรดโดยการใช้คำสั่ง if-else

using System;

class SelectionStatement
{
static void Main(string[] args)
{
int score;

Console.Write("Enter your score: ");
int.TryParse(Console.ReadLine(), out score);

if(score >= 80) {
Console.WriteLine("Your grade is A");
}
else if(score >= 70) {
Console.WriteLine("Your grade is B");
}
else if (score >= 60)
{
Console.WriteLine("Your grade is C");
}
else if (score >= 50)
{
Console.WriteLine("Your grade is D");
}
else {
Console.WriteLine("You fall");
}
}
}

ในตัวอย่าง เป็นตัวแปรสำหรับการตรวจสอบเกรดโดยการใส่คำแนนลองไปในตัวแปร score และโปรแกรจะนำไปคำนวณเกรดที่ได้ คือถ้าคะแนนตั้งแต่ 80 ขึ้นไปจะได้เกรด A, 70 จะได้เกรด b, 60 เกรดจะได้ C ไปเรื่อยๆ และในคำสั่ง else ไม่ตรงกับเงื่อนไขใดๆ ก่อนหน้าเลย และคุณจะสอบตก

และนี่เป็นผลลัพธ์เมื่อเราได้ลองใส่ค่าคะแนนต่างๆ ลงบนโปรแกรม

Enter your score: 82
Your grade is A
Enter your score: 70
Your grade is B
Enter your score: 49
You fall

มาดูตัวอย่างเพิ่มเติม กับโปรแกรมแปลงอุณหภูมิโดยการใช้คำสั่ง if else

using System;

class SelectionStatement
{
static void Main(string[] args)
{
int mode;
float temperature;

Console.Write("1: convert F to C\n2: convert C to F\n");
Console.Write("Enter 1 or 2: ");
int.TryParse(Console.ReadLine(), out mode);

Console.Write("Enter temperature to be converted: ");
float.TryParse(Console.ReadLine(), out temperature);

if (mode == 1) {
float c = (temperature - 32) * (5.0f / 9.0f);
Console.WriteLine("Converted {0} Fahrenheit degree to {1} Celsius degree", temperature, c);
}
else if (mode == 2) {
float f = temperature * 1.8f + 32;
Console.WriteLine("Converted {0} Celsius degree to {1} Fahrenheit degree", temperature, f);
}
else {
Console.WriteLine("You've entered wrong mode.");
}
}
}

ในตัวอย่างข้างบนเป็นโปรแกรมสำหรับแปลงอุณภูมิจากองศาเซลเซียสเป็นองศาฟาเรนไฮต์ และในทางกลับกัน มันมีสองตัวแปรในโปรแกรม ตัวแปร mode เพื่อบ่งบอกว่าคุณต้องการแปลงไปเป็นแบบไหน ยกตัวอย่างเช่น: ถ้าคุณใส่ค่า 1 มันหมายความว่าแปลงจาก องศาฟาเรนไฮต์ ไปเป็น องศาเซลเซียส ใส่ 2 เป็นการแปลงจาก องศาเซลเซียส ไปเป็นองศาฟาเรนไฮต์ และถ้าเป็นค่าอื่นโปรแกรมจะไม่ทำงาน ตัวแปร temperature เป็นค่านำเข้าของอุณหภูมิที่ต้องการแปลง

คำสั่ง Switch case

คำสั่งการเลือกอีกแบบหนึ่งคือคำสั่ง switch case ซึ่งมันทำงานคล้ายกับคำสั่ง if แต่มันใช้สำหรับเปรียบเทียบกับค่าคงที่เท่านั้น ซึ่งมีรูปแบบการใช้งานดังนี้:

switch(inputValue) {
case constant1:
// statement for case 1
break;
case constant2:
// statement for case 1
break;
default:
//statement for default case
break;
}

โดย inputValue เป็นค่าที่ต้องการนำไปเปรียบเทียบกับค่าคงที่ในแต่ละกรณี (case) ในบล็อกของ switch ที่เรียงลำดับกัน เมื่อเงื่อนไขตรงกับ case ใดๆ โปรแกรมจะทำงานข้างของคำสั่ง case จนกว่ามันจะพบคำสั่ง break เพื่อที่จะออกจากบล็อกของ switch

ข้างล่างนี้เป็นตัวอย่างการใช้งาน switch-case

using System;

class SwitchCase
{
static void Main(string[] args)
{
int n = 1;
switch(n) {
case 1:
Console.WriteLine("Case 1");
break;
case 2:
Console.WriteLine("Case 2");
break;
default:
Console.WriteLine("Default case");
break;
}
}
}

ในตัวอย่าง เราได้ส่งตัวแปร n เป็นอากิวเมนต์สำหรับ switch และมันมีประเภทข้อมูลเป็นแบบ Integer สังเกตุกว่าเงื่อนใน case ต่างๆ ก็ต้องเป็น Integer ด้วยเช่นกัน

ในบทนี้ คุณได้เรียนรู้เกี่ยวกับการควบคุมโปรแกรมโดยใช้คำสั่งเลือกจากเงื่อนไขในภาษา C#


บทความเกี่ยวกับ คำสั่งเลือกเงื่อนไข

คำสั่งควบคุม ในภาษา C

ในบทก่อนหน้า คุณได้เรียนรู้พื้นฐานของภาษา C ไปแล้ว ในบทนี้คุณจะได้เรียนรู้เกี่ยวกับการควบคุมการทำงานของโปรแกรมโดยใช้คำสั่งควบคุม ในภาษา C มีคำสั่งควบคุมหลายประเ...

คำสั่งเลือกเงื่อนไข ในภาษา Java

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

คำสั่งเลือกเงื่อนไข ในภาษา Visual Basic

ในบทนี้ คุณจะได้เรียนรู้การควบคุมโปรแกรม โดยใช้คำสั่งเลือกเงื่อนไขในภาษา Visual Basicในการเขียนโปรแกรมนั้น เราอาจจะต้องการให้โปรแกรมให้ทำงานที่แตกต่างกันขึ้นกับ...

คำสั่งเลือกเงื่อนไข ในภาษา Python

ในบทนี้ คุณจะได้เรียนเกี่ยวกับคำสั่งเลือกเงื่อนไขในภาษา Python เราจะพูดถึงการควบคุมการทำงานโปรแกรมด้วยคำสั่ง if, if else และ elif เพื่อให้โปรแกรมสามารถทำงานซับซ...

คำสั่งควบคุม ในภาษา C++

ในบทก่อนหน้า คุณได้เรียนพื้นฐานของภาษา C++ ไปแล้ว ในบทนี้ คุณจะได้เรียนเกี่ยวกับการควบคุมโปรแกรมโดยการใช้คำสั่งควบคุม อย่างเช่น if, if else, switch, for, while...