“Hình 2.5. Sơ đồ hoạt động của toán từ đo ... while.
Chú ý:
- Các lưu ý của toán tử w#t¿Íe cũng đúng cho toán tử đo ... whife.
Ví dụ 2-23. Viết chương trình tính căn bậc hai của một số dương 2 thông qua
công thức truy hồi sau:
Xa. =‡Í Xa sa }; với n >=0, Xụ =a; Quá trình lặp kết thúc khi thỏa
mãn hệ thức |ÌX;„; -XaÌ'Xa| <_£ , với e nhập từ bàn phím. Khi đó giá trị của X„,
được xem là giá trị gần đúng của căn bậc hai của ø (với sai số £ ). Trong chương, trình ta cần dùng hàm đouble fabs(double) để trả về giá trị tuyệt đối của một số thực, hàm này khai báo trong rmath.h.
F»xnnn00ynnn000000000000000000000000000000000000000000000000000000000000nn0E 7] #include "stdio.h"
#inelude "conio.h”
#include “math.h” xi tttF tt tr rrrteekrrekereoerrrkexeer10112.18111114112246050 111001001 1011 1
int main(}
double a, Epsilon, CanBacHai, Xcu, Xmoi; do
clrscr();
pbrintf(AnHay nhap so duong a va so duong EpSiLon \n"); scanf(“%If%If”, &a, &Epsilon);
}
while((a<0)J|(Epsilon<0)); /*Chỉ nhập các số đương”/ Xmoøi= a; /* Điều kiện đầu*/
do { Xcu=Xmoi; Xmoi=(Xecu+ a/Xcu)/2; } while(fabs((Xmoi-Xcu)/Xcu)>Epsilon);
print(“AnCan bac hai cua %10.2f la %10.4f”, a, Xmoi); getch();
return 0;
đÒ n1 94111411444410948 111001411 114448711311114114042.1111451112TE5801ĐE 4. Nhóm các lệnh điều khiển khác
a) Toán tử break
Là một toán tử điều khiển đặc biệt cho phép ra khỏi vòng lặp or, while, do while và toán tử switch trong trường hợp cân thiết khi đang thực hiện các câu lệnh
trong thân vòng lặp hoặc thân của swch. Điều đó có nghĩa là toán tử break cho ta
khả năng ra khỏi một vòng lặp hoặc swkch (từ một điểm bất kì bên trong thân vòng
lặp hoặc thân switch) mà không đùng đến điều kiện kết thúc vòng lặp hoặc không
muốn các lệnh sau break trong thân swich được thực hiện tiếp. 68
Chú ý:
~ Khi có nhiều vòng lặp hoặc swwc% lồng nhau thì câu lệnh break chỉ thoát ra khỏi vòng lặp sâu nhất (trong càng) có chứa toán tử break đó mà thôi,
~ Mọi toán tử break đều có thể thay bằng toán tử gøfo với nhãn thích hợp. - break thường được sử dụng khi vòng lập /ør có thể thực hiện số lần lặp ít
hơn số lần lặp đã được xác định trước, trong thân của switch và trong các trường
hợp ta phải kiểm tra điều kiện kết thúc của vòng lặp wÌile bên trong thân của nó như trong ví dụ 2-22 đã được trình bày ở trên. „
Ví dụ 2-24. Viết chương trình xét xem một số nguyên đương nở (với n nhập từ bàn phím) có phải là một số nguyên tố hay không ?
E th re HeR111421111241111110111411141444122114 x/ #include “stdio.h” #include”"conio. #include “math.h” đ* HE eA.-.-7.-KER...545015-1/ int mainQ char ch, inti, Dung, n;
/“ Thực hiện chương trình cho đến khi bấm 'K' hoặc 'k'*/ do
{ Dung=0; /* giả sử số đó là hợp số*/ ¬- ,
# Chỉ nhập số nguyên dương */
do
l
printf(nHay nhap so nguyen dương n = "}; scanf(“%d”, &n);
if(n<0)
{
printf(“%c”, 7),
printf(nHay nhap lai”};
}
while(n<0);
# Xét tính nguyên tố của số vừa nhập */
for(I=2; í<= sqrt(n); i++)
if((n%i)==0) -
break; /“ Thoát luôn */
Ìf (>sqrt(n) && (nI=1) && (nI=0)) /* đã xót hết các ước số có thể có*/ Đung=1; / Chắc chắn là số nguyên tố */ Đung=1; / Chắc chắn là số nguyên tố */
if(Dung)
printf(AnSo %d la mot so nguyen 1o”,n); else
printf(“iSo %d la hop so”,n);
getch0;
while{ clrscr(), printf(“^nBan co tiep tuc nua khong (C/K) 2”),
Scanf(“%"[ Wij%c”, &ch), chị= 'K' && ch I= kỳ,
return 0;
000000111001 6114111 K11. 11011110111111311421101444 1111114111561 42x *ƒ b} Câu lệnh continue
"Trái với toán tử #reak (dàng để thoát ra khối vòng lặp) câu lệnh coinue đùng để bất đầu một vòng lặp mới của chu trình sâu nhất chứa toán tử đó. Nói một
cách khác:
~ Khi gặp toán tử eøzinue bên trong thân của một toán tử for, máy sẽ bỏ qua các câu lệnh còn lại trong thân or (sau continwe) chuyển sang thực hiện Biểu thức
3 để khởi đầu cho vòng lập mới tiếp theo;
- Khi gặp toán tử cowtinue bên trong thân của vòng lặp w#ile hoặc do while, máy sẽ bỏ qua các lệnh còn lại trong thân vòng lặp (sau confinue) chuyển tới Kiểm