Biểu thức điều kiện và vòng lặp trong C# (Bài 2)

Biểu thức điều kiện và vòng lặp trong C# sẽ trình bày đến bạn đọc về biểu thức điều kiện với câu lệnh if…else và câu lệnh switch…case. Hai câu lệnh này được sử dụng để lập điều kiện và sẽ có những xử lý tương ứng được thực hiện tuỳ vào điều kiện nào được thoã. Ngoài ra bài học này cũng sẽ giới thiệu đến các bạn xử lý lặp với các vòng lặp for, while, do…while và foreach.

Biểu thức điều kiện và vòng lặp trong C# – Câu lệnh if…else

Câu lệnh if cho phép bạn thực hiện một khối lệnh sau khi so sánh biểu thức điều kiện. Nếu điều kiện là đúng (true), khối lệnh theo sau câu lệnh if sẽ được thực hiện. Ngược lại khối lệnh sau câu lệnh else sẽ được thực hiện. Bên dưới là cú pháp của câu lệnh if…else

if (condition)
{ 
  // Khối lệnh được thực hiện nếu condition là true;
}
else
{
  // Khối lệnh được thực hiện nếu condition là false; 
}

Ví dụ về câu lệnh if…else

Xử lý này sẽ được hiện phân loại kết quả học tập dựa vào điểm trung bình với tiêu chí nếu điểm trung bình < 5, xếp loại yếu. Nếu điểm trung bình < 6.5, xếp loại trung bình. Nếu điểm trung bình < 8, xếp loại khá. Ngược lại xếp loại giỏi.

float avgScore;

Console.Write("Please enter your average score: ");
avgScore = float.Parse(Console.ReadLine());

if (avgScore < 5)
{
 Console.Write("Bellow average");
}
else if (avgScore < 6.5)
{
 Console.Write("Average");
}
else if (avgScore < 8)
{
 Console.Write("Good");
}
else
{
 Console.Write("Excellent");
}

Kết quả khi thực thi

bieu thuc dieu kien va vong lap trong c# 1

Biểu thức điều kiện và vòng lặp trong C# – Câu lệnh switch…case

Trong một chương trình nếu có quá nhiều câu lệnh if…else sẽ dẫn đến mã nguồn khó hiểu. Để tránh sử dụng quá nhiều câu lệnh if…else, trong một số trường hợp câu lệnh switch…case có thể được sử dụng như là một sự thay thế. Và câu lệnh switch…case thường được sử dụng để so sánh một biến với các giá trị khác nhau.

Cú pháp câu lệnh switch…case

switch (variable) 
{
 case value1:
   // Khối lệnh được thực thi nếu variable = value1
   break;
 case value2:
   // Khối lệnh được thực thi nếu variable = value2
   break;
 ...
 default:
   // Khối lệnh được thực thi nếu variable không bằng với tất cả value
   // trong từng case
   break;
}

Ví dụ sử dụng câu lệnh switch…case

string capability;
Console.Write("Please input your capability ");
capability = Console.ReadLine();

switch (capability.ToUpper())
{
 case "A":
 Console.Write("Your language programming is Android");
 break;
case "B":
 Console.Write("Your language programming is Visual Basic");
 break;
default:
 Console.Write("Not found!");
 break;
}

Sư khác biệt giữa switch…case trong Java và C# là theo sau câu lệnh default trong Java không cần câu lệnh break nhưng trong C# bắt buộc phải có.

Kết quả khi thực thi

biểu thức điều kiện và vòng lặp trong c#

Biểu thức điều kiện và vòng lặp trong C# – Vòng lặp

Vòng lặp cho phép bạn thực thi một hoặc nhiều câu lệnh lặp đi lặp lại cho đến khi thoã điều kiện được chỉ định.

bieu thuc dieu kien va vong lap trong c# 3

C# hỗ trợ 4 loại vòng lặp là vòng lặp while, vòng lặp do…while, vòng lặp for và vòng lặp foreach.

Biểu thức điều kiện và vòng lặp trong C# – Vòng lặp while

Nếu biểu thức điều kiện theo sau while là đúng (true) thì khối lệnh bên trong vòng lặp được thực hiện và sau mỗi lần lặp biểu thức điều kiện được kiểm tra lại và nếu biểu thức điều kiện là sai (false) vòng lặp sẽ kết thúc.

Cú pháp vòng lặp while

while (condition)
{ 
 // Thực hiện xử lý nếu condition là true
}

Ví dụ vòng lặp while hiển thị các số từ 1 đến 5

Console.WriteLine("While statement example");
int i = 1;
while(i <= 5) 
{
 Console.Write(i + " ");
 i++;
}

Kết quả khi thực thi

bieu thuc dieu kien va vong lap trong c# 4

Biểu thức điều kiện và vòng lặp trong C# – Vòng lặp do…while

Vòng lặp do…while cũng tương tự như vòng lặp while tuy nhiên nó luôn luôn thực thi khối lệnh bên trong ít nhất một lần vì vòng lặp do…while kiểm tra điều kiện lặp ở cuối. Đó chính là điểm khác biệt duy nhất giữa vòng lặp while và vòng lặp do…while

Cú pháp vòng lặp do…while

do 
{ 
 // Tiếp tục thực thi xử lý nếu condition là true;
} while (condition);

Ví dụ vòng lặp do…while kiểm tra một số nhập vào phải thoả điều kiện là > 0

Console.WriteLine("Do...While statement example");
int n;
do 
{
  Console.Write("Please input your number: ");
  n = Convert.ToInt32(Console.ReadLine());
} while (n <= 0);
Console.Write("Alright");

Kết quả khi thực thi

bieu thuc dieu kien va vong lap trong c# 5

Biểu thức điều kiện và vòng lặp trong C# – Vòng lặp for

Tương tự như vòng lặp while, những câu lệnh bên trong vòng lặp for sẽ được thực thi nếu biểu thức điều kiện là đúng (true).

Cú pháp vòng lặp for

for (initialization; condition; increment/decrement)
{ 
  // Xử lý sẽ được thực thi nếu condition là true
}

Ví dụ vòng lặp for hiển thị dãy số giảm dần từ 10 đến 1

Console.WriteLine("For statement example");
// int idx = 10 là initialization
// idx > 0 là condition
// idx-- là decrement
for (int idx = 10; idx > 0; idx--)
{
 Console.Write(idx + " ");

Kết quả khi thực thi

bieu thuc dieu kien va vong lap trong c# 6

Biểu thức điều kiện và vòng lặp trong C# – Vòng lặp foreach

Vòng lặp foreach thường được sử dụng để xử lý trên mảng hoặc trên collection để truy cập giá trị của các phần tử trong mảng hoặc collection.

Cú pháp vòng lặp foreach

foreach (val in Array/Collection)
{
 // Xử lý trong khi chưa hết các phần tử trong mảng hoặc collection
}

Ví dụ vòng lặp foreach hiển thị một dãy số trong mảng các sô nguyên

Console.WriteLine("Foreach statement example");
int[] intArr = new int[10];
Random r = new Random();
// Khởi tạo giá trị cho các phần tử của mảng
for (int idx = 0; idx < 10; idx++)
{
 intArr[idx] = r.Next(1, 10);
}
// Hiển thị giá trị của các phần tử sử dụng foreach
Console.Write("Value of element: ");
foreach (int val in intArr)
{
 Console.Write(val + " ");
}

Kết quả khi thực thi

bieu thuc dieu kien va vong lap trong c# 7

Biểu thức điều kiện và vòng lặp trong C# – Câu lệnh break

Như cấc bạn đã biết, câu lệnh break được sử dụng trong switch…case để kết thúc switch…case. Trong vòng lặp câu lệnh break được sử dụng để kết thúc vòng lặp.

Ví dụ sử dụng câu lệnh break để kết thúc vòng lặp nếu có một phần tử nào đó chia hết cho 2

Console.WriteLine("Break statement example");
int[] intArray = new int[10];
Random random = new Random();
// Khởi tạo mảng
for (int idx = 0; idx < 10; idx++)
{
 intArray[idx] = random.Next(1, 20);
 Console.Write(intArray[idx] + " ");
}
Console.Write("\nValue of element: ");
foreach (int e in intArray) 
{ 
 if (e % 2 == 0)
 {
   break;
 }
 Console.Write(e + " ");
}

Kết quả khi thực thi

bieu thuc dieu kien va vong lap trong c# 8

Biểu thức điều kiện và vòng lặp trong C# – Câu lệnh continue

Nếu như câu lệnh break sẽ kết thúc vòng lặp thì câu lệnh continue sẽ bỏ qua những xử lý ở sau câu lệnh continue.

Ví dụ sử dụng câu lệnh continue để hiển thị các số lẻ từ 1 đến 10

Console.WriteLine("Continue statement example");
for (int idx = 1; idx <= 10; idx++)
{
 if (idx % 2 == 0)
 {
  continue;
 }
 Console.Write(idx + " ");
}

Kết quả khi thực thi

bieu thuc dieu kien va vong lap trong c# 9

Biểu thức điều kiện và vòng lặp trong C# – Tổng kết bài học

Sử dụng câu lệnh if…else để lập biểu thức điều kiện và tương ứng với điều kiện nào thoã thì những xử lý tương ứng sẽ được thực hiện. Tất cả những xử lý được cài đặt bằng switch…case đều thực hiên được với câu lệnh if…else nhưng ngược lại thì không.

Câu lệnh switch…case được sử dụng để thay thế câu lệnh if…else nếu biểu thức điều kiện là so sánh bằng và giá trị so sánh là chuỗi hoặc số nguyên.

Đối với những vòng lặp đã xác định trước số lần lặp thì chúng ta sẽ sử dụng vòng lặp for. Sử dụng vòng lặp while nếu muốn kiểm tra điều kiện lặp trước khi thực hiện xử lý.

Câu lệnh break được sử dụng để kết thúc câu lệnh switch…case và vòng lặp. Câu lệnh continue được sử dụng trong vòng lặp để bỏ qua những xử lý phía sau nó.