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Á

FEDU - 029- Học lập trình React js và Redux từ đầu, tạo ứng dụng fullstack với Node JS + React JS

(Giảng viên: Nguyễn Đức Việt)

XEM
FEDU - 27 – Lập trình back-end cơ bản với nodejs & mongodb, mongooose, postgresql.

(Giảng viên: Nguyễn Đức Việt)

XEM
FEDU - 25 – Thiết kế hiệu ứng bằng Javascript và illustrator

(Giảng viên: NGUYỄN ĐỨC VIỆT )

XEM
FEDU - 03: Thành thạo lập trình jquery qua 20 bài tập thực hành

(Giảng viên: Nguyễn Đức Việt)

XEM
FEDU - 23 – Học thành thạo lập trình hướng đối tượng Typescript với ES6

(Giảng viên: Nguyễn Đức Việt)

XEM

BÌNH LUẬN

Đặt câu hỏi: Hãy tham gia vào group học lập trình web để tham gia thảo luận và đặt câu hỏi, với hơn 20.000 thành viên hiện đang hoạt động tại group này. Ngoài ra bạn cũng có thể đặt câu hỏi nếu cần tư vấn về các vấn đề như định hướng nghề nghiệp, những khó khăn trong quá trình học tập.

Hỗ trợ việc làm: Hãy tham gia vào group việc làm công nghệ thông tin để tìm và đăng tuyển lập trình viên. Hy vọng đây sẽ là nơi tìm kiếm việc làm lý tưởng cho bạn và nhà tuyển dụng.