CHƯƠNG 3: CÁC CÂU LỆNH LẶPNội dung Câu lệnh for Câu lệnh do while Câu lệnh while Câu lệnh break Câu lệnh continue... • Bước 3: Nếu giá trị của là sai thì máy sẽ ra khỏi câu lệnh for, ng
Trang 1CHƯƠNG 3: CÁC CÂU LỆNH LẶP
Nội dung
Câu lệnh for
Câu lệnh do while
Câu lệnh while
Câu lệnh break
Câu lệnh continue
Trang 2Câu lệnh for
• for(<bt1>; <bt2>; <bt3>)
• <lệnh>
• Khi gặp câu lệnh máy sẽ
• Bước 1: Tính giá trị của biểu thức <bt1>
• Bước 2: Tính giá trị của biểu thức <bt2>
• Bước 3: Nếu giá trị của <bt2> là sai thì máy sẽ ra khỏi câu lệnh for,
ngược lại máy sẽ thực hiện <lệnh>
• Bước 4: Tính giá trị biểu thức <bt3> và quay về Bước 2
• Chú ý:
Khi <bt2> vắng mặt thì nó được coi là đúng
<bt1>, <bt2> có thể bao gồm nhiều biểu thức cách nhau bởi dấu phẩy
<bt2> cũng có thể bao gồm nhiều biểu thức tuy nhiên tính đúng sai của
nó được xem là tính đúng sai của biểu thức cuối cùng
Trang 3• Ví dụ 1: Nhập n nguyên dương, tính và in ra tổng s = 1 + 2 + … + n
•
• <nhap n>
• if(n <= 0)
• <in thông báo không hợp lệ>
• else
• {
• s = 0;
• for(i = 1; i <= n; i++)
• <in s>
• }
• Ví dụ 2: đoạn mã lặp trong phần else trên có thể viết gọn như sau
• for(i = 1, s = 0; s += i, i < n ; i++);
Trang 4Câu lệnh while
• while(<bt>)
• <lệnh>;
• Khi gặp câu lệnh này máy sẽ:
• Bước 1: Tính giá trị của biểu thức <bt>
• Bước 2: Nếu giá trị của <bt> là sai thì ra khỏi câu lệnh while, nguợc lại thì máy sẽ thưc hiện <lệnh> và quay trỡ lại bước1
• Ví dụ 3: Làm lại ví dụ 1
• s = 0; i =1;
• while(i <= n)
• {
• s += i;
• }
• <in s>
Trang 5• 3.3 Câu lệnh do while
• do
• {
• <lệnh>
• }while (<bt>);
• khi gặp câu lệnh này máy sẽ:
• Bước 1: Thực hiện <lệnh>
• Bước 2: Tính giá trị của biểu thức <bt>, nếu giá trị <bt> sai thì ra khỏi câu lệnh do while, nguợc lại thì máy quay trở lại bước 1
Trang 6• Chú ý:
Trong câu lệnh while thì <bt> được kiểm tra trước, nếu <bt> đúng thì
<lệnh> mới được thực hiện, còn trong câu lệnh do while thì <lệnh> được thưc hiện trước khi kiểm tra <bt> do đó <lệnh> bao giờ cũng được thực hiện ít nhất một lần
Biểu thức <bt> cũng có thể bao gồm nhiều biểu thức tuy nhiên tính đúng sai của nó được xem là tính đúng sai của biểu thức cuối cùng
Trang 7• Ví dụ 4: Làm lại ví dụ 1 nhưng cho phép người sử dụng chạy chương trình
nhiều lần, mỗi lần kết thúc tính tóan thì nhắc người sử dụng “tiếp tục chạy” hay “ngưng chương trình”
• do
• {
• <nhap n>
• if(n <= 0)
• <in thông báo không hợp lệ>
• //các câu lệnh
• printf(“Tiep tuc hay ngung ? (Y/N)”);
• fflush(stdin);
• scanf(“%c”, &ch);
• } while(ch == ‘Y’ || ch == ‘y’);
Trang 8Câu lệnh break
• break;
• Khi gặp câu lệnh này trong các vòng lặp, máy sẽ ra khỏi vòng lăp và
chuyển tới câu lệnh sau các câu lệnh trên Khi có nhiều chu trình lồng nhau thì câu lệnh break sẽ nhảy ra khỏi chu trình sâu nhất
• Ví dụ 5: Làm lại ví dụ 1
• s = 0; i = 1;
• while(1) //biểu thức trong ngoặc luôn luôn đúng
• {
• s += 1;
• if(i > n) break;
• }
• <in s>
Trang 9Câu lệnh continue
• continue;
• Khi gặp câu lệnh này trong các vòng lặp, máy sẽ bỏ qua phần còn lại trong vòng lặp và tiếp tục thực hiện vòng lặp tiếp theo Đối với câu lệnh for thi máy sẽ tính lại giá trị của biểu thức <bt3> và quay lại bước 2, còn đối với câu lệnh while và do while thi máy sẽ tính lại giá trị của <bt> và quay lại bước 1
• Ví dụ 6:
• int n;
• for(; ;)
• { <nhập n>
• if(n % 2 == 0) continue;
• else if(n % 3 == 0) break;
• printf(“%d khong chia het cho 2 va 3\n”, n);
• }
• printf(“Da tim đuoc 1 so chia het cho 3 do la %d\n”, n);