[Bài 7: Câu lệnh điều kiện - Cấu trúc lặp trong C#]
Khi bạn đã từng học 1 ngôn ngữ lập trình nào đó trước khi đọc bài này thì chắc rằng không còn xa lạ gì nữa về
- Câu lệnh điều kiện .
- Cấu trúc lặp .
- Cấu trúc lặp .
Câu lệnh điều kiện :
Khi bạn muốn chọn giữa việc thực thi 2 câu lệnh khác nhau. Phụ thuộc vào 1 kết quả .
Bạn có thể sử dụng câu lệnh if .
Công thức:
If (điều_kiện_để_chạy)
Bạn có thể sử dụng câu lệnh if .
Công thức:
If (điều_kiện_để_chạy)
Câu lệnh 1
Else // nếu điều kiện không đúng để lệnh 1 chạy
Câu lệnh 2
Ví dụ :
Console.WriteLine("nhap so ");
int i=int.Parse(Console.ReadLine());
if (i%2==0)
Console.WriteLine("so chan");
else
Console.WriteLine("so le");
Console.ReadLine();
Console.WriteLine("nhap so ");
int i=int.Parse(Console.ReadLine());
if (i%2==0)
Console.WriteLine("so chan");
else
Console.WriteLine("so le");
Console.ReadLine();
Ví dụ này kiểm tra số chẵn lẻ bằng điều kiện if…else…
Phân tầng các câu lệnh if.
Nếu bạn có nhiều câu lệnh cần kiểm tra thì đây là 1 lựa chọn
Công thức :
If (điều_kiện_để_chạy_lệnh_1)
Nếu bạn có nhiều câu lệnh cần kiểm tra thì đây là 1 lựa chọn
Công thức :
If (điều_kiện_để_chạy_lệnh_1)
Câu lệnh 1
Else if (điều_kiện_để_chạy_lệnh_2)
Câu lệnh 2
Else if (điều_kiện_để_chạy_lệnh_3)
Câu lệnh 3
Else if (điều_kiện_để_chạy_lệnh_4)
Câu lệnh 4
Else if (điều_kiện_để_chạy_lệnh_N)
Câu lệnh N
Else //nếu tất cả đều sai
câu lệnh chạy
ví dụ:
Console.WriteLine("nhap so ");
int i=int.Parse(Console.ReadLine());
if (i==0)
Console.WriteLine("0");
else if(i==1)
Console.WriteLine("1");
else if (i == 2)
Console.WriteLine("2");
else if (i == 3)
Console.WriteLine("3");
else
Console.WriteLine("ngoai vung");
Console.ReadLine();
int i=int.Parse(Console.ReadLine());
if (i==0)
Console.WriteLine("0");
else if(i==1)
Console.WriteLine("1");
else if (i == 2)
Console.WriteLine("2");
else if (i == 3)
Console.WriteLine("3");
else
Console.WriteLine("ngoai vung");
Console.ReadLine();
Câu lệnh switch.
Khi có quá nhiều điều kiện để kiểm tra thì câu lệnh if ..else.. trở nên rối và dài dòng.
Giải pháp của ta sẽ là switch
công thức :
switch (biểu thức điều kiện)
Khi có quá nhiều điều kiện để kiểm tra thì câu lệnh if ..else.. trở nên rối và dài dòng.
Giải pháp của ta sẽ là switch
công thức :
switch (biểu thức điều kiện)
{
case (giá trị 1)
Các câu lệnh thực hiện
Break;
Các câu lệnh thực hiện
Break;
case (giá trị 2)
Các câu lệnh thực hiện
Break;
Các câu lệnh thực hiện
Break;
case (giá trị n)
Các câu lệnh thực hiện
Break;
Các câu lệnh thực hiện
Break;
default:
Các câu lệnh thực hiện mặc định
Break;
}
Các câu lệnh thực hiện mặc định
Break;
}
Bạn lưu ý : lệnh nhảy “Break;” bắt buộc phải có ở cuối câu lệnh như trên công thức và ví dụ dưới đây .
tt:;
Console.WriteLine("nhap so ");
int i=int.Parse(Console.ReadLine());
switch (i)
{
case 1:
Console.WriteLine("so 1");
break;
Console.WriteLine("nhap so ");
int i=int.Parse(Console.ReadLine());
switch (i)
{
case 1:
Console.WriteLine("so 1");
break;
case 2:
Console.WriteLine("so 2");
break;
case 3:
Console.WriteLine("so 3");
break;
default:
goto tt;
}
Console.ReadLine();
break;
case 3:
Console.WriteLine("so 3");
break;
default:
goto tt;
}
Console.ReadLine();
Ở trên mình có sử dụng lệnh nhảy goto.nó sẽ nhảy đến tt:; tức là đầu chương trình trên ví dụ.
Lệnh nhảy goto là một lệnh nhảy đơn giản, cho phép chương trình nhảy vô điều kiện tới một vị trí trong chương trình thông qua tên nhãn. Tuy nhiên việc sử dụng lệnh goto thường làm mất đi tính cấu trúc thuật toán, việc lạm dụng sẽ dẫn đến một chương trình nguồn mà giới lập trình gọi là “mì ăn liền” rối như mớ bòng bong vậy. Hầu hết các người lập trình có kinh nghiệm đều tránh dùng lệnh goto. Sau đây là cách sử dụng lệnh nhảy
goto:
goto:
Tạo một nhãn
goto đến nhãn
Nhãn là một định danh theo sau bởi dấu hai chấm (:). Thường thường một lệnh goto gắn với một điều kiện nào đó.
Câu lệnh lặp :
C# cung cấp một bộ mở rộng các câu lệnh lặp, bao gồm các câu lệnh lặp for, while và do... while. Ngoài ra ngôn ngữ C# còn bổ sung thêm một câu lệnh lặp foreach.
Vòng lặp for:
Lặp với điều kiện.
Bạn có thể khởi tạo 1 biến trong vòng lặp for.biến đó sẽ được định phạm vi trong phần thân của câu lệnh for và biến mất khi câu lệnh for hoàn tất.bạn không thể sử dụng nó khi vòng lặp for đã kết thúc,có thể tái sử dụng biến đó cho vòng lặp khác .
Bạn có thể khởi tạo 1 biến trong vòng lặp for.biến đó sẽ được định phạm vi trong phần thân của câu lệnh for và biến mất khi câu lệnh for hoàn tất.bạn không thể sử dụng nó khi vòng lặp for đã kết thúc,có thể tái sử dụng biến đó cho vòng lặp khác .
công thức :
for ([ phần khởi tạo] ; [biểu thức điều kiện]; [bước lặp])
for ([ phần khởi tạo] ; [biểu thức điều kiện]; [bước lặp])
<Câu lệnh thực hiện>
Ví dụ :
for (int i = 0; i <= 10; i++)
{
Console.WriteLine(i);
}
Console.ReadLine();
{
Console.WriteLine(i);
}
Console.ReadLine();
Vòng lặp while:
Trong khi điều kiện đúng thì thực hiện các công việc này
Chạy đến khi nào sai thì thôi
Trong khi điều kiện đúng thì thực hiện các công việc này
Chạy đến khi nào sai thì thôi
Công thức :
while (Biểu thức)
while (Biểu thức)
<Câu lệnh thực hiện>
Ví dụ:
int i = 0;
while (i < 10)
{
Console.WriteLine(i);
i++;
}
Console.ReadLine();
int i = 0;
while (i < 10)
{
Console.WriteLine(i);
i++;
}
Console.ReadLine();
Bạn nhớ phải đưa 1 lệnh để giá trị lặp có thể thay đổi từ true sang false. Để tránh vòng lặp này chạy vô tận. trong ví dụ trên mình sử dụng câu lệnh i++ để thực hiện
Vòng lặp do...while .
làm điều này trong khi điều kiện vẫn còn đúng
Các câu lệnh while và for đều có điều kiện ở đầu vòng lặp. điều này có nghĩa nếu biểu thức đánh giá thành false thì sẽ không chạy dù chỉ 1 lần. câu lệnh do thì khác. Điều kiện ở cuối chương trình cho phép nó đánh giá sau mỗi lần lặp lại . Do đó phần thân sẽ thực thi tối thiểu 1 lần.
Các câu lệnh while và for đều có điều kiện ở đầu vòng lặp. điều này có nghĩa nếu biểu thức đánh giá thành false thì sẽ không chạy dù chỉ 1 lần. câu lệnh do thì khác. Điều kiện ở cuối chương trình cho phép nó đánh giá sau mỗi lần lặp lại . Do đó phần thân sẽ thực thi tối thiểu 1 lần.
Công thức:
do
{
Câu lệnh
}
while <điều kiện>.
do
{
Câu lệnh
}
while <điều kiện>.
ví dụ :
int i = 0;
do
{
Console.WriteLine(i);
i++;
}
while (i < 10);
Console.ReadLine();
int i = 0;
do
{
Console.WriteLine(i);
i++;
}
while (i < 10);
Console.ReadLine();
Vòng lặp foreach:
Vòng lặp foreach cho phép tạo vòng lặp thông qua một tập hợp hay một mảng.
Do lặp dựa trên một mảng hay tập hợp nên toàn bộ vòng lặp sẽ duyệt qua tất cả các thành phần của tập hợp theo thứ tự được sắp. Khi duyệt đến phần tử cuối cùng trong tập hợp thì chương trình sẽ thoát ra khỏi vòng lặp foreach.
Do lặp dựa trên một mảng hay tập hợp nên toàn bộ vòng lặp sẽ duyệt qua tất cả các thành phần của tập hợp theo thứ tự được sắp. Khi duyệt đến phần tử cuối cùng trong tập hợp thì chương trình sẽ thoát ra khỏi vòng lặp foreach.
Công thức :
foreach ( <kiểu tập hợp> <tên truy cập thành phần > in < tên tập hợp>)
<Các câu lệnh thực hiện>
Ví dụ:
int[] a = { 6, 9, 96,69 };
foreach (int i in a)
{
Console.WriteLine(i);
}
Console.ReadLine();
foreach (int i in a)
{
Console.WriteLine(i);
}
Console.ReadLine();
Câu lệnh nhảy break và continue :
Khi đang thực hiện các lệnh trong vòng lặp, có yêu cầu như sau: không thực hiện các lệnh còn lại nữa mà thoát khỏi vòng lặp, hay không thực hiện các công việc còn lại của vòng lặp hiện tại mà nhảy qua vòng lặp tiếp theo. Để đáp ứng yêu cầu trên C# cung cấp hai lệnh nhảy là break và continue để thoát khỏi vòng lặp.
Break khi được sử dụng sẽ đưa chương trình thoát khỏi vòng lặp và tiếp tục thực hiện các lệnh tiếp ngay sau vòng lặp.
Continue ngừng thực hiện các công việc còn lại của vòng lặp hiện thời và quay về đầu vòng lặp để thực hiện bước lặp tiếp theo
Hai lệnh break và continue tạo ra nhiều điểm thoát và làm cho chương trình khó hiểu cũng như là khó duy trì. Do vậy phải cẩn trọng khi sử dụng các lệnh nhảy này.
Hai lệnh break và continue tạo ra nhiều điểm thoát và làm cho chương trình khó hiểu cũng như là khó duy trì. Do vậy phải cẩn trọng khi sử dụng các lệnh nhảy này.
Ví dụ :
int i = -7;
while (true)
{
Console.WriteLine(i);
i++;
if (i < 10)
int i = -7;
while (true)
{
Console.WriteLine(i);
i++;
if (i < 10)
continue;
else
break;
else
break;
}
Console.WriteLine("thoát vòng lặp");
Console.ReadLine();
Bài viết tham khảo : http://yagarai.blogspot.com/2013/10/c-can-ban-cau-lenh-ieu-kien.html
0 nhận xét:
Post a Comment