Vòng lặp while trong C#

Bài trước mình đã giới thiệu sơ lượt về vòng lặp trong C# và chúng ta cũng đã tìm hiểu về vòng lặp for trong C#. Vậy có một vấn đề đặt ra đối với vòng lặp for đó là chúng ta không biết trước được số lần lặp của đoạn lệnh. Ví dụ nhập vào một số nguyên dương lớn hơn 10, nếu số đó không thỏa thì nhập lại. Rõ ràng chúng ta hoàn toàn không thể biết người dùng sẽ nhập bao nhiêu lần cả. Vì thế nên vòng lặp while sẽ giúp chúng ta giải quyết vấn đề này.

Vậy vòng lặp while là gì ? Nó có cấu trúc như thế nào ? Sử dụng nó ra làm sao ? Chúng ta hãy cùng tìm hiểu nhé !

1. Cấu trúc vòng lặp while

Như đã nói ở phần mở đầu thì đối với vòng lặp while chúng ta không xác định trước được số lần lặp của lệnh hoặc khối lệnh trong thân vòng lặp. Khi sử dụng vòng lặp while thì điều kiện lặp sẽ được kiểm tra trước khi chúng ta thực thi các lệnh trong thân vòng lặp.

Cú pháp sử dụng vòng lặp while như sau:

Cấu trúc
while (biểu thức điều kiện)
<Câu lệnh thực hiện>

Trong đó:

  • Biểu thức điều kiện là điều kiện để các lệnh được thực hiện, biểu thức này bắt buộc phải trả về giá trị true hoặc false
  • Nếu trong while có nhiều câu lệnh được thực hiện thì phải để nó trong khối lệnh { }.

Cách thức hoạt động:

Đầu tiên mời các bạn xem sơ đồ sau rồi mình sẽ giải thích.

Trước tiên, vòng lặp while sẽ thực hiện xác định giá trị của biểu thức điều kiện. Nếu biểu thức điều kiện trả về giá trị true thì các lệnh, khối lệnh trong thân vòng lặp sẽ được thực hiện. Sau đó nó lại quay về kiểm tra điều kiện lặp có đúng hay không. Nếu điều kiện lặp trả về giá trị false thì các lệnh sẽ không được thực hiện và bỏ qua vòng lặp để đi đến lệnh tiếp theo trong chương trình.

Có một số lưu ý nhỏ khi bạn sử dụng vòng lặp while đó là:

  • Ta thấy trước khi thực hiện lệnh trong thân của vòng lặp thì nó sẽ kiểm tra biểu thức điều kiện trước tiên. Vậy để vòng lặp hoạt động thì biểu thức ban đầu của chúng ta sẽ trả về giá trị true.
  • Sau mỗi lần lặp nó đều quay về và kiểm tra biểu thức điều kiện vậy để thoát khỏi tình trạng lặp vô hạn gây ra hiện tượng treo máy thì chúng ta cần có lệnh làm thay đổi giá trị của biểu thức để đảm bảo rằng sau một số lần lặp nhất định thì ta sẽ nhận được giá trị false từ biểu thức điều kiện và kết thúc vòng lặp. Nếu trong thân vòng lặp không có lệnh làm thay đổi giá trị biểu thức thì ta cần có từ khóa break để thoát khỏi vòng lặp. (Mình sẽ nói sau về từ khóa này nhé :D).

2. Ví dụ

Ta sẽ quay trở lại vấn đề đã đặt ra ở phần mở đầu nhé. Đó là nhập vào một số nguyên dương lớn hơn 10, nếu sai thì thông báo và nhập lại, nếu đúng thì xuất số ấy ra màn hình.

Ví dụ
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace freetuts.net
{
	class freetuts
	{
		static void Main(string[] args)
		{
			Console.WriteLine("\nnhap vao so tu nhien lon hon 10 ");
			int x = Convert.ToInt16(Console.ReadLine());
			while(x<10)
			{
				Console.WriteLine("\nxin loi {0} < 10 ban oi!!! nhap lai giup minh nhe ahihi", x );
				x = Convert.ToInt16(Console.ReadLine());
			}
			Console.WriteLine("\nso ban vua nhap la: " + x);
			Console.WriteLine("\nfreetuts chuc ban hoc tot !!!");
			Console.ReadKey();
		}
	}
}

Khi biên dịch và nhập một số thử nghiệm ta có kết quả như sau:

Quá trình nó chạy như sau:

  • Xuất ra màn hình yêu cầu nhập.
  • Khi bạn nhập vào x = 1 thì ta thấy x < 10 nên lệnh trong vòng lặp thực hiện và yêu cầu bạn nhập lại.
  • Tương tự bạn nhập x = 2 ta thấy đều thỏa x < 10 nên lệnh trong vòng lặp lại tiếp tục được thực thi.
  • Tương tự bạn nhập x = 3 ta thấy đều thỏa x < 10 nên lệnh trong vòng lặp lại tiếp tục được thực thi.
  • Tương tự bạn nhập x = 4 ta thấy đều thỏa x < 10 nên lệnh trong vòng lặp lại tiếp tục được thực thi.
  • Tương tự bạn nhập x = 5 ta thấy đều thỏa x < 10 nên lệnh trong vòng lặp lại tiếp tục được thực thi.
  • Cuối cùng bạn nhập vào x = 20 thì ta thấy không thỏa điều kiện lặp vì x > 10 sau sẽ thoát khỏi vòng lặp và xuất giá trị x ra màn hình.

3. Lời kết

Vậy mình đã cùng các bạn tìm hiểu thêm về một cấu trúc lặp, các bản đã hiểu hơn về vòng lặp while trong C# chưa nhỉ ? Cứ để lại comment phía dưới nếu bạn có bất kỳ thắc mắc gì nhé ! Sau đây mình xin đưa ra một số bài tập để các bạn hiểu rõ thêm về vòng lặp while trong C# các bạn cố gắng luyện tập nhé. https://freetuts.net chúc các bạn học tốt !!!

Nguồn: freetuts.net

KHÓA HỌC ĐANG GIẢM GIÁ

UNICA - Toàn tập ngôn ngữ lập trình C#

(Giảng viên: )

XEM
KYNA - C# nâng cao

(Giảng viên: Trần Duy Thanh)

XEM
KYNA - C# căn bản

(Giảng viên: Trần Duy Thanh)

XEM