คำสั่งเลือกเงื่อนไข
ในเรียนนี้ คุณจะได้เรียนรู้เกี่ยวกับคำสั่งเงื่อนไขในภาษา 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#