Bài 6 CÂU LỆNH ĐIỀU KHIỂN
1.Câu lệnh while
(cid:1) Cú pháp (Syntax): while ( expression )
(cid:1) Ví dụ
statement // thân lặp
int count = 0; while( count < 10)
cout << ++count << endl;
Ví dụ int main() { int x, count = 0; float sum = 0.0 ; cout << " Nhập một vài số nguyên: \n" " Nhập ký tự bất kỳ để thoát"
<< endl;
while (cin >> x ) { sum += x ; ++count; } cout << " Giá trị trung bình : " << sum/count << end; return 0 ; }
2.Câu lệnh for
(cid:1) Cú pháp
for ( expression1; expression2; expression3 )
statement
(cid:1) Ví dụ
int i, count = 0; for (i=1; i <10; ++i) cout << ++count; (cid:1) Biểu thức (expression) có thể có nhiều phần cách nhau bởi dấu phẩy và được đánh giá từ trái sang,
(cid:1) Ví dụ
int x, i, limit ;
for (i=0, limit=8; i cho x (cid:1) (cid:1) #include (cid:1) for (;;)
(cid:1) for(x=0; x for(x=0; x != 123; ) // không có expression 3 (cid:1) Cú pháp do statement
while ( expression);
(cid:1) Ví dụ const long delay = 10000000L;
int main()
{ int tic;
cout << "\nNhập số lần lặp "; cin >> tic;
do { for ( long i = 0; i < delay; ++i ) ; cout << "Âm hiệu!\a" //tạo tiếng kêu << endl; }
while( --tic > 0 );
cout << "Kết thúc!\n"; return 0; } (cid:1) Cú pháp if( expression ) statement1 (cid:1) else statement2 trong ngoặc vuông nghĩa là [else statement2 ] (cid:1) ví dụ có hoặc không tùy ứng dụng if ( x < y ) min = x;
else min = y; // Magic Number program.
#include int magic; // magic number
int guess; // số dự đoán
magic = rand(); // lấy số ngẫu nhiên
cout << "Nhập số đoán: ";
cin >> guess;
if(guess == magic) cout << "** Đúng **"; return 0;
} (cid:1) Ví dụ: bổ sung vào chương trình đoán số (cid:1) Ví dụ nhập vào 3 số in ra số lớn nhất magic number cho biết số dự đoán lớn hay
nhỏ so với số đúng. (cid:1) Cú pháp: Switch ( statement )
{ case const 1: case const 2: [ statement sequence ]
[ break; ] // thoát khỏi switch
[ statement sequence ]
[ break; ] .
.
.
[default : statement ] // nếu có thì sẽ thực hiện khi biểu thức điều //kiện không trùng bất kỳ giá trị nào ở trên } (cid:1) Biểu thức điều khiển được tính toán, nếu kết
quả trùng với trường hợp (case constant)
nào thì các câu lệnh (statement sequence)
tương ứng sẽ được thực thi. (cid:1) Kiểu của biểu thức điều khiển là int hay char
(cid:1) Thông thường biểu thức điều khiển chỉ là một (cid:1) Thường dùng khi cần so sánh với một loạt biến các giá trị Có 4 lưu ý quan trọng về switch:
(cid:1) Câu lệnh switch khác với if ở chỗ nó chỉ kiểm tra bằng,
trong khi biểu thức điều kiện của if có thể kiểm tra bất
kỳ (không bằng, lớn hơn, nhỏ hơn) (cid:1) Không thể có hai hằng số case đồng dạng trong một câu lệnh switch (cid:1) Câu lệnh switch luôn hiệu quả hơn dùng if chứa if
(cid:1) Các câu lệnh liên quan mỗi case không phải là các khối. (cid:1) C++ có thể chấp nhận đến 16384 case, nhưng trên thực tế dùng một số nhỏ vì chạy chương trình hiệu quả. switch(choice) {
case 1:
cout << "for la vong lap linh hoat cua C++.\n"; break;
case 2:
cout << "if là câu lệnh điều khiển rẽ vào một trong hai nhánh của C++.\n"; break;
case 3:
cout << "switch là câu lệnh điều khiển rẽ vào một trong nhiều nhánh của C++.\n"; break;
default:
cout << “Bạn phải nhập một số nguyên 1,2 hoặc 3.\n"; } #include return 0;
} (cid:1) Về nguyên tắc thì lệnh break là tùy chọn, tuy
nhiên trong một số trường hợp không dùng
break sẽ khiến chương trình chạy không như
mong muốn, ví dụ: #include case 3: cout << "less than 4\n";
case 4: cout << "less than 5\n";
}
cout << '\n';
}
return 0;
} (cid:1) Khi nhiều case có cùng mã lệnh thì có thể đặt switch(i) {
case 1:
case 2:
case 3: statement sequence;// cho 1,2 và 3
break;
case 4: satatement sequence;// cho 4
break; kề nhau và để rỗng các case bên trên (cid:1) Câu lệnh switch chứa switch switch(ch1) {
case 'A': cout << " A của switch bên ngoài"; switch(ch2) {
case 'A':
cout << " A của switch bên trong";
break;
case 'B': // ...
}
break;
case 'B': // ... (cid:1) Câu lệnh continue ép sự lặp kế tiếp diễn ra sớm hơn, bỏ qua các câu lệnh phía sau nó trong vòng lặp. #include int x;
for(x=0; x<=100; x++) { if(x%2) continue;
cout << x << ' ';
}
return 0;
} (cid:1) Dùng câu lệnh break để thoát ra khỏi vòng #include lặp (cid:1) Viết chương trình in liên tục "Hello World" cho đến khi ấn phím bất kỳ thì ngưng. (cid:1) Câu lệnh goto khiến chương trình chuyển
đến thực thi từ một vị trí được xác định bởi
một nhãn (label), nhãn là một danh định hợp
lệ trong C++ theo sau là dấu hai chấm (:) x = 1; loop1: x++; if(x < 100) goto loop1; (cid:1) Dùng tốt nhất là để thoát ra từ các thủ tục lồng ghép rất sâu. Ví dụ:
for(...) {
for(...) {
while(...) {
if(...) goto stop;
.
.
.
}
}
}
stop:
cout << "Error in program.\n"; 1. Viết chương trình giải phương trình bậc 2.
2. Viết chương trình in ra các số nguyên tố nhỏ hơn số N được nhập vào từ bàn phím. 3. Viết chương trình đọc vào một số N, sau đó
nhập tiếp N số kiểu double, in ra số trung
bình của các số đã nhập.Một vài cách dùng for
3.Câu lệnh do-while
4.Câu lệnh IF
5.Câu lệnh switch (1/3)
Câu lệnh switch (2/3)
Câu lệnh switch (3/3)
Ví dụ
6. Dùng continue
7. Dùng break
8. Dùng câu lệnh goto
Bài Tập