Thứ Năm, 8 tháng 4, 2010

// // 1 comment

Cấu trúc lệnh trong C#

1. Các cấu trúc điều khiển
C# cung cấp hai cấu trúc điều khiển thực hiện việc lựa chọn điều kiện thực thi chương trình đó là cấu trúc if và switch...case

Cấu trúc if
Cấu trúc if trong C# được mô tả như sau:
    if (biểu thức điều kiện)
    {
        // câu lệnh thực thi nếu biểu thức điều kiện đúng
    }
    [else
    {
        // câu lệnh thực thi nếu biểu thức điều kiện sai
    }]

Ví dụ:
    if (20 % 4 > 0)
    {
        Console.WriteLine("Số 20 không chia hết cho 4");
    }
    else
    {
        Console.WriteLine("Số 20 chia hết cho số 4");
    }


Cấu trúc switch … case
Cấu trúc switch … case có cấu trúc như sau:
    // switch ... case
    switch (Biến điều kiện)
    {
        case giá trị 1:
            // Câu lệnh thực thi
            break;
        case giá trị 2:
            // Câu lệnh thực thi
            break;
        case giá trị 3:
            // Câu lệnh thực thi
            break;
        default:
            // Câu lệnh thực thi
            break;
    }


Ví dụ:
    int x = 20 % 4;
    switch (x)
    {
        case 1:
            Console.WriteLine("20 chia cho 4 được số dư là 1");
            break;
        case 0:
            Console.WriteLine("20 chia hết cho 4");
            break;
        default:
            Console.WriteLine("Không thuộc tất cả các trường hợp trên");
            break;
    }


2. Cấu trúc vòng lặp trong lập trình C#
C# cung cấp các cấu trúc vòng lặp chương trình

§ While
§ Do… while
§ For
§ Foreach

Sau đây là cách thức sử dụng
Vòng lặp While
Cấu trúc vòng lặp while
    while (biểu thức điều kiện)
    {
        // câu lệnh
    }


Thực thi câu lệnh hoặc một loạt những câu lệnh đến khi điều kiện không được thỏa mãn.
Ví dụ:
    using System;
    class WhileTest
    {
        public static void Main()
        {
            int n = 1;
            while (n < 10)
            {
                Console.WriteLine("Current value of n is {0}", n);
                n++;
            }
        }
    }


Vòng lặp do
Cấu trúc vòng lặp do while
    do
    {
        // câu lệnh
    }
    while (biểu thức điều kiện)


Thực thi câu lệnh ít nhất một lần đến khi điều kiện không được thỏa mãn.
Ví dụ:
    using System;
    public class TestDoWhile
    {
        public static void Main ()
        {
            int x;
            int y = 0;
            do
            {
                x = y++;
                Console.WriteLine(x);
            }
            while(y < 10)
        }
    }


Vòng lặp for
Cấu trúc vòng lặp for
    for ([ phần khởi tạo] ; [biểu thức điều kiện]; [bước lặp])
    {
        // thực thi câu lệnh
    }

Ví dụ:
    using System;
    public class ForLoopTest
    {
        public static void Main()
        {
            for (int i = 1; i <= 5; i++)
                Console.WriteLine(i);
        }
    }

Vòng lặp foreach
Câu lệnh lặp foreach khá mới với những người đã học ngôn ngữ C, từ khóa này được sử dụng trong ngôn ngữ Visual Basic. Câu lệnh foreach cho phép chúng ta lặp qua tất cả các mục trong một mảng hay trong một tập hợp. Cú pháp sử dụng lệnh lặp foreach như sau:
    foreach (var item in collection )
    {
        // thực hiện thông qua tương ứng với
        // từng mục trong mảng hay tập hợp
    }


Dữ liệu kiểu tập hợp chưa được đề cập tới trong các bài học trước nên bạn chỉ cần quan tâm đến vòng lặp foreach sử dụng với mảng. Bạn hãy xem ví dụ sau để hiểu cách sử dụng của vòng lặp foreach truy cập đến từng phần từ của mảng.
    using System;
    public class UsingForeach
    {
        public static int Main()
        {
            int[] intArray = {1,2,3,4,5,6,7,8,9,10};
            foreach( int item in intArray)
            {
                Console.Write("{0} ", item);
            }
            Console.ReadLine();
            return 0;
        }
    }

Kết quả:
0 1 2 3 4 5 6 7 8 9 10


3. Các lệnh break, goto và continue
Câu lệnh nhảy goto:
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. Goto giúp chương trình của bạn được linh hoạt hơn nhưng trong nhiều trường hợp nó sẽ làm mất đi cấu trúc thuật toán và gây rối chương trình.
Cách sử dụng lệnh 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 đó.
Ví dụ:
    using System;
    public class UsingGoto
    {
        public static void Main()
        {
            int i = 0;
            lap: // nhãn
            Console.WriteLine("i:{0}",i);
            i++;
            if ( i < 10)
                goto lap; // nhãy về nhãn lap
            Console.ReadLine();
        }
    }

Tương đương với vòng lặp for sau:
    for (int i = 0; i < 10; i++)
        Console.WriteLine("i:{0}", i);


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.
Ví dụ:
    public class UsingBreak_Continue
    {
        public static void Main()
        {
            for (int i = 0; i < 10; i++)
            {
                if (i % 2 == 0) continue;
                Console.WriteLine("i:{0}", i);
                if (i==7) break;
            }
            Console.ReadLine();
        }
    }


Nếu không có lệnh break và continue vòng lặp sẽ lần lượt in ra các số từ 0 đến 9 nhưng khi gặp I chẵn (i%2==0) thì nó sẽ continue – tức là không thực hiện các lệnh tiếp theo mà quay trở lại đầu vòng lặp với giá trị của I được tăng lên 1. Lệnh break được thực hiện khi (i==7) nó sẽ thoát khỏi vòng lặp ngay lập tức và cũng kết thúc chương trình và kết quả là chương trình trên chỉ in ra các số lẻ từ 1 đến 7

1 comments:

Vuaphelieu nói...

Thật ra thì tương tự như c++ nếu bạn đã từng
can ho canary