Các cấu trúc C/C++ sau đây điều khiển luồng trong C thông qua chương trình. Nếu bạn là một lập trình viên có kinh nghiệm, chức năng của các cấu trúc này sẽ quen thuộc với cả các ngôn ngữ khác mà các bạn đã học qua.
Lệnh sau đánh giá booleanExpression. Nếu nó được đánh giá là true, thì điều khiển sẽ chuyển sang biểu thức 1 . Nếu không, khi đó điều khiển sẽ chuyển sang biểu thức tùy chọn 2 .
if (booleanExpression)
{
expression1;
}
[else
{
expressions2;
}]
Lệnh sau đánh giá booleanExpression, nếu điều này được đánh giá là true, thì điều khiển sẽ chuyển sang biểu thức. Ở cuối, điều khiển quay trở lại booleanExpression và lặp lại quá trình.
while (booleanExpression)
{
expression;
}
Lệnh sau thực thi các biểu thức, sau đó nó sẽ đánh giá booleanExpression. Nếu điều này được đánh giá là true, điều khiển sẽ trả về đầu vòng lặp và lặp lại quá trình.
do
{
expressions;
} while(booleanExpression);
Lệnh sau thực thi initCommand, có thể là một biểu thức hoặc một khai báo biến. Sau đó nó sẽ đánh giá boolExpression. Nếu điều này được đánh giá là đúng , thì điều khiển sẽ chuyển đến biểu thức 1 còn nếu boolExpression là false, thì điều khiển sẽ chuyển tới câu lệnh đầu tiên sau dấu ngoặc khép kín của vòng lặp for. Khi biểu thức hoàn thành, kiểm soát chuyển đến biểu thức chứa trong loopExpression trước khi trở về boolExpression để lặp lại quá trình. Nếu initCommand khai báo một biến mới, nó sẽ nằm ngoài phạm vi ngay sau khi kiểm soát vượt qua vòng lặp.
for (initCommand; boolExpression; loopExpression)
{
expression;
}
Trong biểu mẫu này, biến được khai báo lấy giá trị của thành viên đầu tiên của danh sách và thực thi khối biểu thức. Khi hoàn thành, biến được khai báo nhận giá trị thứ hai của danh sách và thực thi lại các biểu thức. Quá trình này được lặp lại cho mỗi giá trị trong danh sách .
for (declaration: list)
{
expression;
}
Lệnh sau đánh giá integerExpression và so sánh kết quả với nhau trong các trường hợp được liệt kê. Nếu giá trị được tìm thấy để bằng một trong những giá trị hằng số tích phân: VAL1 , VAL2,..., điều khiển đi vào tập tương ứng của biểu thức và tiếp tục cho đến khi kiểm soát gặp một thay đổi nào đó. Nếu biểu thức không bằng bất kỳ giá trị nào, điều khiển sẽ chuyển đến các biểu thức N theo mặc định .
switch(integerExpression)
{
case val1:
expressions1;
break;
case val2:
expressions2;
break;
[default:
expressionsN;
]
}
Tiếp tục vượt qua kiểm soát đến cuối của cú đúp đóng của điều khiển vòng lặp. Điều này làm cho vòng lặp tiếp tục với lần lặp tiếp theo. Ví dụ, vòng lặp sau xử lý các số nguyên tố từ 1 đến 20:
for(int i = 0; i < 20; i++)
{
// if the number is not prime...
if (!isPrime(i))
{
// ...skip over to the next value of i
continue;
}
// proceed on processing
}
Một lệnh break chuyển điều khiển đến câu lệnh đầu tiên sau cú đúp đóng của bất kỳ lệnh lặp nào. Điều này làm cho việc thực hiện thoát khỏi vòng lặp ngay lập tức. Ví dụ:
while(true)
{
// read a line from input object
input >> line;
// if a failure or end-of-file occurs...
if (cin.eof() || cin.fail())
{
// ...then exit the loop
break;
}
// process the line
}
Ví dụ phá vỡ ở trên có thể được viết như sau:
while(true)
{
// read a line from input object
input >> line;
// if a failure or end-of-file occurs...
if (cin.eof() || cin.fail())
{
// ...then exit the loop
goto exitLabel;
}
// process the line
}
exitLabel:
// control continues here
Tài liệu lập trình C khác bạn nên tìm hiểu: