Trong C#, một mảng là một cấu trúc đại diện cho một tập hợp các giá trị hoặc đối tượng có cùng kiểu có độ dài cố định được sắp xếp theo thứ tự.
Mảng giúp dễ dàng tổ chức và vận hành trên một lượng lớn dữ liệu. Ví dụ: thay vì tạo 100 biến số nguyên, bạn chỉ có thể tạo một mảng lưu trữ tất cả các số nguyên đó!
// `numbers` array that stores integers
int[] numbers = { 3, 14, 59 };
// 'characters' array that stores strings
string[] characters = new string[] { "Huey", "Dewey", "Louie" };
Biến mảng C# được khai báo tương tự như biến không phải là mảng, với việc bổ sung dấu ngoặc vuông ( []
) sau mã định kiểu để biểu thị nó là một mảng.
Từ khóa new cần thiết khi khởi tạo một mảng mới để gán cho biến, cũng như độ dài mảng trong dấu ngoặc vuông. Mảng cũng có thể được khởi tạo với các giá trị bằng cách sử dụng dấu ngoặc nhọn ( {}
). Trong trường hợp này, độ dài mảng là không cần thiết.
// Declare an array of length 8 without setting the values.
string[] stringArray = new string[8];
// Declare array and set its values to 3, 4, 5.
int[] intArray = new int[] { 3, 4, 5 };
Trong C#, một cách mà một mảng có thể được khai báo và khởi tạo cùng một lúc là gán mảng mới được khai báo vào danh sách các giá trị được phân tách bằng dấu phẩy bao quanh bởi dấu ngoặc nhọn ( {}
). Lưu ý cách chúng ta có thể bỏ qua chữ ký kiểu và new
từ khóa ở phía bên phải của phép gán bằng cú pháp này. Điều này chỉ có thể thực hiện được trong khi khai báo mảng.
// `numbers` and `animals` are both declared and initialized with values.
int[] numbers = { 1, 3, -10, 5, 8 };
string[] animals = { "shark", "bear", "dog", "raccoon" };
Trong C#, các phần tử của một mảng được gắn nhãn tăng dần, bắt đầu từ 0 cho phần tử đầu tiên. Ví dụ: phần tử thứ 3 của mảng sẽ được lập chỉ mục ở 2 và phần tử thứ 6 của mảng sẽ được lập chỉ mục ở 5.
Một phần tử cụ thể có thể được truy cập bằng cách sử dụng toán tử dấu ngoặc vuông, bao quanh chỉ mục bằng dấu ngoặc vuông. Sau khi được truy cập, phần tử có thể được sử dụng trong một biểu thức hoặc được sửa đổi như một biến thông thường.
// Initialize an array with 6 values.
int[] numbers = { 3, 14, 59, 26, 53, 0 };
// Assign the last element, the 6th number in the array (currently 0), to 58.
numbers[5] = 58;
// Store the first element, 3, in the variable `first`.
int first = numbers[0];
Thuộc tính Length của mảng C# có thể được sử dụng để lấy số phần tử trong một mảng cụ thể.
int[] someArray = { 3, 4, 1, 6 };
Console.WriteLine(someArray.Length); // Prints 4
string[] otherArray = { "foo", "bar", "baz" };
Console.WriteLine(otherArray.Length); // Prints 3
Vòng lặp for C# thực hiện một tập hợp các lệnh cho một số lần xác định, dựa trên ba biểu thức được cung cấp. Ba biểu thức được phân tách bằng dấu chấm phẩy và theo thứ tự là:
// This loop initializes i to 1, stops looping once i is greater than 10, and increases i by 1 after each loop.
for (int i = 1; i <= 10; i++) {
Console.WriteLine(i);
}
Console.WriteLine("Ready or not, here I come!");
Vòng lặp foreach
chạy một tập hợp các lệnh một lần cho mỗi phần tử trong một tập hợp nhất định. Ví dụ, nếu một mảng có 200 phần tử, thì phần foreach
thân của vòng lặp sẽ thực thi 200 lần. Khi bắt đầu mỗi lần lặp, một biến được khởi tạo cho phần tử hiện tại đang được xử lý.
A cho mỗi vòng lặp được khai báo với foreach
từ khóa. Tiếp theo, trong dấu ngoặc đơn, một loại biến và tên biến theo sau là in
từ khóa và tập hợp để lặp lại.
string[] states = { "Alabama", "Alaska", "Arizona", "Arkansas", "California", "Colorado" };
foreach (string state in states) {
// The `state` variable takes on the value of an element in `states` and updates every iteration.
Console.WriteLine(state);
}
// Will print each element of `states` in the order they appear in the array.
Trong C#, vòng lặp while thực hiện một tập hợp các lệnh liên tục trong khi biểu thức boolean đã cho đánh giá true
hoặc một trong các lệnh bên trong thân vòng lặp, chẳng hạn như lệnh break, kết thúc vòng lặp.
Lưu ý rằng phần thân của vòng lặp có thể hoàn toàn không chạy, vì điều kiện boolean được đánh giá trước lần lặp đầu tiên của vòng lặp while .
Cú pháp để khai báo một vòng lặp while chỉ đơn giản là while
từ khóa được theo sau bởi một điều kiện boolean trong dấu ngoặc đơn.
string guess = "";
Console.WriteLine("What animal am I thinking of?");
// This loop will keep prompting the user, until they type in "dog".
while (guess != "dog") {
Console.WriteLine("Make a guess:");
guess = Console.ReadLine();
}
Console.WriteLine("That's right!");
Trong C#, vòng lặp do while chạy một tập hợp các lệnh một lần và sau đó tiếp tục chạy miễn là điều kiện boolean đã cho true
. Lưu ý rằng hành vi này gần giống với vòng lặp while , với điểm khác biệt là do while chạy một hoặc nhiều lần và vòng lặp while chạy không hoặc nhiều lần.
Cú pháp để khai báo do while là do
từ khóa, tiếp theo là khối mã, sau đó là while
từ khóa với điều kiện boolean trong dấu ngoặc đơn. Lưu ý rằng dấu chấm phẩy là cần thiết để kết thúc vòng lặp do while.
do {
DoStuff();
} while(boolCondition);
// This do-while is equivalent to the following while loop.
DoStuff();
while (boolCondition) {
DoStuff();
}
Vòng lặp vô hạn là vòng lặp không bao giờ kết thúc bởi vì điều kiện dừng của nó luôn là false
. Một vòng lặp vô hạn có thể hữu ích nếu một chương trình bao gồm liên tục thực thi một đoạn mã. Tuy nhiên, một vòng lặp vô hạn không chủ ý có thể khiến một chương trình bị treo và không phản hồi do bị mắc kẹt trong vòng lặp.
Một chương trình đang chạy trong một trình bao hoặc thiết bị đầu cuối bị mắc kẹt trong một vòng lặp vô hạn có thể được kết thúc bằng cách chấm dứt quá trình.
while (true) {
// This will loop forever unless it contains some terminating statement such as `break`.
}
Câu lệnh nhảy là công cụ được sử dụng để cung cấp cho người lập trình quyền kiểm soát bổ sung đối với luồng điều khiển của chương trình. Chúng rất thường được sử dụng trong ngữ cảnh của các vòng lặp để thoát khỏi vòng lặp hoặc để bỏ qua các phần của vòng lặp.
Các từ khóa luồng kiểm soát bao gồm break
, continue
và return
. Các đoạn mã đã cho cung cấp các ví dụ về cách sử dụng của chúng.
while (true) {
Console.WriteLine("This prints once.");
// A `break` statement immediately terminates the loop that contains it.
break;
}
for (int i = 1; i <= 10; i++) {
// This prints every number from 1 to 10 except for 7.
if (i == 7) {
// A `continue` statement skips the rest of the loop and starts another iteration from the start.
continue;
}
Console.WriteLine(i);
}
static int WeirdReturnOne() {
while (true) {
// Since `return` exits the method, the loop is also terminated. Control returns to the method's caller.
return 1;
}
}
Đăng nhận xét