X , In ra kiểu số nguyín viết dưới dạng sổ hexa (cơ số 16)
2.3.4.3. Cẩu trúc for
0 hai cấu trúc lặp trước, số bước lặp vă những thay đổi để thực hiện bước lặp tiếp theo có thể khơng được xâc định hoặc phải xâc định trong
khi thực hiện khối lệnh, c còn cung cấp một cấu trúc for khâc giúp đơn giản hóa vấn đề năy bằng câch xâc định số bước lặp vă bước nhảy một
câch rõ răng ngay từ đầu
Cú phâp
for ( [khởi_tạo] ; [điềukiện] ; [biểu_thức])
{
// khối lệnh }
Trong đó:
- khời tạo: Có thể lă một biểu thức hoặc một khai bâo, dùng để khởi tạo giâ trị cho câc biến cho vòng lặp
- điều kiện: lă một biểu thức nhận giâ trị đúng hoặc sai, dùng để quyết định tiếp tục hay dừng việc thực hiện khối lệnh.
- biểu thức: dùng để thay đổi (tăng hoặc giảm) giâ trị của câc biến điều khiển.
Sự hoạt động
Bước 2: Xâc định giâ trị của biểu thức điều kiện.
Bước 3: Nếu biểu thức điều kiện có giâ trị lă sai thì trình biín dịch sẽ
thôt khỏi cấu trúc lặp for. Nếu biểu thức điều kiện cỏ giâ trị đúng thì
khối lệnh sẽ được thực hiện vă trình biín dịch sẽ chuyển sang bước 4. Bước 4: Xâc định giâ trị của biểu thức vă quay trở lại bước 2.
Chú ý:
- Cả ba biểu thức trong cấu trúc for có thể tuỳ chọn, chúng có thể
vắng mặt một trong 3 biểu thức hoặc lă că 3 biểu thức năy. Có thể thiếu
một trong 3 biểu thức trín nhưng bắt buộc vẫn phải để dấu;. Nếu trong trường họp biểu thức điều kiện bị khuyết thì nó ln được xem lă đúng.
- Do biểu thức điều kiện được xâc định trước khi thực hiện khối lệnh nín có thể khối lệnh khơng bao giờ được thực hiện.
Ví dụ 2.3.14: Nhập n. Tính n! #include <stdio.h> #include <conio.h> void main() { int n; int i; int result =1; printf("\n Nhap so n:"); scanf("%d",&n); printf("\n"); for(i=l ;i<=n;i++) { result*=i; } printf(" %d!=%d",n,result); getch(); }
Ví dụ 2.3.15 : Nhập văo một số ngun n. Kiểm fra xem số đó có
phải lă số ngun tố hay khơng.
//include <stdio.h> //include <math.h> //include <conio.h> int main() { int N, i, OK= 1;
printf("\nNhap gia tri N: ");
scanf("%d", &N);
for (i=2; i<=(int)sqrt(N); i++) if(N%i = 0) { OK = 0; break; } if (OK)
printf("\nSo %d la so nguyín to.", N); else
printf("\nSo %d khong phai la so nguyín to.", N); getch();
}
Thuật tôn trín sẽ chỉ cần kiểm tra câc giâ trị từ 2 cho tới căn bậc hai
của số n sẽ lă đủ. Vì câc ước của n nểu cỏ sẽ chi nằm trong khoảng năy. Vă nếu như có một ước bất kì năo xuất hiện trong khoảng đó chứng tỏ n
sẽ khơng phải lă số ngun tổ. Băi tôn năy sử dụng vịng lặp for lă hợp lý nhất vì đê xâc định được giâ trị khởi đầu vă giâ trị kết thúc vòng lặp.