23 tháng 3, 2020

Vòng lặp for trong C#

Vòng lặp giúp chúng ta chúng ta viết code cho những vấn đề lặp đi lặp lại một cách đơn giản và gọn nhẹ. Ví dụ cần xuất ra màn hình 100 dòng chữ "quantrimaytinh.com", tính tổng các số lẻ từ 1 đến 511. Chúng ta không thể viết 100 câu lệnh Console.WriteLine được, cũng không thể viết tất cả các số lẻ từ 1 đến 511 được. Chính vì vậy phải sử dụng cấu trúc lặp, đây cũng là cấu trúc có trong hầu hết các ngôn ngữ lập trình.

Vòng lặp for trong C#

Trong C# có nhiều cấu trúc lặp:
  • Cấu trúc vòng lặp for
  • Cấu trúc vòng lặp while
  • Cấu trúc vòng lặp do - while
  • Cấu trúc vòng lặp foreach
  • Vòng lặp đặc biệt: đệ quy
Ngoài ra chúng ta có thể tạo ra vòng lặp không chính quy bằng cách sử dụng lệnh goto.
Nay trong bài viết này, chúng ta cùng tìm hiểu về vòng lặp for nhé.

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

Sử dụng vòng lặp for cho chúng ta biết trước số lần lặp của lệnh hoặc khối lệnh. Chính vì vậy, đây là một vòng lặp được sử dụng khá linh hoạt và thường xuyên trong các ngôn ngữ lập trình

Cú pháp:
for ([phần khởi tạo]; [biểu thức điều kiện]; [bước lặp])
{
      Khối lệnh thực hiện
}

- Phần khởi tạo là phần chứa đoạn mã khởi tạo giá trị, đoạn lệnh này sẽ được chạy đầu tiên và chỉ được gọi một lần duy nhất trong vòng đời của vòng lặp.
- Biểu thức điều kiện là biểu thức logic trả về kết quả true hoặc fasle, nếu bạn bỏ trống thì kết quả của biểu thức điều kiện được hiểu là true.
- Bước lặp là bước nhảy của biến khởi tạo sau mỗi lần lặp.

Lưu ý:
- Phần khởi tạo, biểu thức điều kiện, bước lặp hoàn toàn có thể để trống nhưng buộc phải có dấu chấm phẩy ;
- Mỗi phần khởi tạo, biểu thức điều kiện hoặc bước nhảy có thể có nhiều hơn một biểu thức. Vậy các biểu thức phải đặt cách nhau bởi dấu phẩy và được thực hiện từ trái sang phải.

Sơ đồ cấu trúc vòng lặp for

Bước 1: Trình biên dịch sẽ chạy lệnh trong phần khởi tạo
Bước 2: Sau đó kiểm tra điều kiện. Nếu biểu thức điều kiện đúng thì thực hiện bước 3, nếu sai thì kết thúc vòng lặp.
Bước 3: Thực hiện khối lệnh
Bước 4: Thực hiện các lệnh trong bước lặp và quay lại bước 2.

Ví dụ: Tính tổng các số nguyên từ 1 đến 10.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace vong_lap_for
{
    class Program
    {
        static void Main(string[] args)
        {
            int tong = 0;
            for (int i = 1; i <= 10; i++)
            {
                tong += i;
            }              
            Console.WriteLine("tong cac so nguyen tu 1 den 10 la: {0}", tong);
            Console.ReadKey();
        }
    }
}

Kết quả tổng sẽ bằng 55.
Đầu tiên chúng ta khởi tạo biến tong có giá trị là 0. Vòng for sẽ khởi tạo biến i = 1, kiểm tra i = 1 thì nhỏ hơn 10 nên thực hiện tong = tong + i = 0 + 1 = 1. Tiếp theo tăng i lên 1 đơn vị, tức là bằng 2, kiểm tra thấy 2 vẫn nhỏ hơn 10 nên thực hiện tong = tong + i = 1 + 2 = 3. Tiếp tục tăng i lên 3, cứ thế thực hiện đến khi i = 11 thì dừng lại, thoát khỏi vòng lặp.

2. Bài tập thực hành

Bài 1: In 20 dòng chữ "quantrimaytinh.com" ra màn hình
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace vong_lap_for
{
    class Program
    {
        static void Main(string[] args)
        {           
            for (int i = 1; i <= 30; i++)
            {
                Console.WriteLine("quantrimaytinh.com");
            }                         
            Console.ReadKey();
        }
    }
}

Kết quả: 

Bài 2: In dãy số nguyên từ 1 đến 1000 ra màn hình
for (int i = 1; i <= 1000; i++)
{
       Console.Write("{0}  ",i);
}                         
Console.ReadKey();

Kết quả: 

Bài 3: In ra màn hình ma trận gồm 9 dòng, mỗi dòng là dãy số nguyên từ 1 đến 9
for (int hang = 1; hang <= 9; hang++)
{
      for (int cot = 1; cot <= 9; cot++)
      {
            Console.Write("{0}  ", cot);
      }
      Console.WriteLine();
}                         
Console.ReadKey();

Kết quả:

Trong bài này mình sẽ chạy 2 vòng lặp for. Khai báo 2 biến là hang cot (nghĩa là hàng và cột). Hàng sẽ chạy vòng lặp for từ 1 đến 9, cứ mỗi vòng lặp của hàng thì lại chạy 1 vòng lặp cột từ 1 đến 9. Mỗi vòng lặp của cột thì in ra màn hình giá trị cột hiện tại. 

Giả sử hàng = 1 thì chạy cột từ 1 đến 9, cột bằng 1 thì in 1 ra màn hình, cứ thế đến khi cột = 9 thì thoát vòng lặp cột. Sau khi thoát vòng lặp cột thì tăng hàng lên 1 đơn vị rồi chạy tiếp đến khi hàng = 9 thì thoát vòng lặp.

SHARE THIS

Blogger Nguyễn Dương

Có một câu nói mà mình rất thích đó là "Thật sai lầm khi nghĩ rằng một khi rời khỏi trường học, bạn không cần học thêm điều mới nữa". Chính vì thế mà hãy luôn luôn học hỏi, con người chỉ ngừng phát triển khi ngừng học hỏi. Nếu như bạn chưa hiểu nội dung bài viết hoặc đang khúc mắc khi thao tác thì hãy bình luận phía dưới bài viết để mọi người cùng thảo luận nhé!