Lệnh rẽ nhánh if
Đây là một lệnh rất quen thuộc. Trong C, biểu thức điều kiện được đặt trong cặp dấu ngoặc tròn thay vì giữa 2 từ khóa
if .. then
như Pascal. Tiếp theo là một lệnh hoặc khối lệnh. Khối lệnh trong C đặt giữa cặp dấu ngoặc nhọn {} còn trong Pascal đặt giữa begin .. end;
Ở dạng có thêm
else
trong Pascal được tính là một lệnh. Vì vậy nên khối lệnh trước else
sẽ không có dấu chấm phẩy. Còn trong C tính là 2 lệnh nên cần dấu chấm phẩy trước else
.Ví dụ:
if a > b then writeln(a) else writeln(b); if (a > b) printf("%d\n", a); else printf("%d\n", b);Lệnh rẽ nhánh switch .. case
Tương đương với
case .. of
của Pascal. Nhưng switch .. case
có vẻ khó sử dụng hơn, nó đòi hỏi phải có lệnh nhảy break
sau mỗi case
, nếu không nó sẽ thực hiện tất cả các case
. Dưới đây là ví dụ:case month of 4, 6, 9, 11 : writeln('30 days'); 2: writeln('28 days'); else writeln('31 days'); end; switch (month) { case 4: case 6: case 9: case 11: printf("30 days\n"); break; case 2: printf("28 days\n"); break; default: printf("31 days"); }Vòng lặp for
Cách vòng lặp for trong C hoạt động khác hoàn toàn với Pascal. Trong C, vòng lặp for có cú pháp:
for(<khởi tạo>;<điều kiện>;<tăng biến chạy>)
Trong đó phần <khởi tạo> dùng để tạo giá trị ban đầu cho biến chạy và chỉ được thực hiện 1 lần duy nhất. Phần <điều kiện> chứa điều kiện để vòng lặp thực hiện và phần <tăng biến chạy> mô tả cách thức tăng/giảm của biến chạy. Vòng for của C có thể thay thế tất cả các vòng lặp còn lại.
Tuy nhiên, vòng for của Pascal chỉ có thể tăng/giảm biến chạy 1 đơn vị.
Dưới đây là ví dụ: Tính S = 2 + 4 + 6 + 8 + ...+ 2n trong Pascal không thể thực hiện bằng for nhưng C thì có thể:
int s = 0; for (int i = 2; i <= 2*n; i += 2) s += i;Vòng lặp while và do .. while
Vòng lặp
while
trong C hầu như tương tự Pascal và mình không có gì để bàn. Trong C còn có vòng lặp do .. while
, chỉ khác while
ở chỗ thực hiện lệnh 1 lần rồi mới kiểm tra điều kiện lặp, nếu đúng mới lặp lại tiếp. Khác với repeat .. until
của Pascal, điều kiện trong until
là ngược với điều kiện trong while
của do .. while
.Ví dụ: Nhập N trong khoảng từ 1 đến 100, nếu ngoài khoảng đó yêu cầu nhập lại.
repeat write('Nhap N: '); readln(n); until n >= 1 and n <= 100; do { printf("Nhap N: "); scanf("%d", &n); } while (n < 1 || n > 100);
Không có nhận xét nào:
Đăng nhận xét