Xin chào các bạn chúng ta lại gặp nhau trong loạt bài lập trình C cơ bản do ksec.info tổ chứ ở bài trước chúng ta đã học về cấu trúc rẽ nhánhhôm nay mình sẽ giới thiệu tiếp về cấu trúc vòng lặp với toán tử for
I.Toán tử for
-Vòng lặp xác định thực hiện lặp lại một số lần xác định của một (chuỗi hành động)
• Cú pháp lệnh 

for (biểu thức 1; biểu thức 2; biểu thức 3)
khối lệnh;

-Từ khóa for phải viết bằng chữ thường
-Nếu khối lệnh bao gồm từ2 lệnh trở lên thì phải đặt trong dấu { }
c1.png
*Giải thích: 
+ Biểu thức 1: khởi tạo giá trị ban đầu cho biến điều khiển.
+ Biểu thức 2: là quan hệ logic thể hiện điều kiện tiếp tục vòng lặp.
+ Biểu thức 3: phép gán dùng thay đổi giá trị biến điều khiển.
*Nhận xét: 
+ Biểu thức 1 bao giờ cũng chỉ được tính toán một lần khi gọi thực hiện for.
+ Biểu thức 2, 3 và thân for có thể thực hiện lặp lại nhiều lần.
*Lưu ý: 
+ Biểu thức 1, 2, 3 phải phân cách bằng dấu chấm phẩy ( ; )
+ Nếu biểu thức 2 không có, vòng for được xem là luôn luôn đúng. Muốn thoát khỏi vòng lặp for phải dùng một trong 3 lệnh break, go to hoặc return.
+ Với mỗi biểu thức có thể viết thành một dãy biểu thức con phân cách nhau bởi dấu phẩy. Khi đó các biểu thức con được xác định từ trái sang phải. Tính đúng sai của dãy biểu thức con trong biểu thức thứ 2 được xác định bởi biểu thức con cuối cùng.
+ Trong thân for (khối lệnh) có thể chứa một hoặc nhiều cấu trúc điều khiển khác.
+ Khi gặp lệnh break, cấu trúc lặp sâu nhất sẽ thoát ra.
+ Trong thân for có thể dùng lệnh goto để thoát khỏi vòng lặp đến vịtrí mong muốn.
+ Trong thân for có thể sử dụng return để trở về một hàm nào đó.
+ Trong thân for có thể sử dụng lệnh continue để chuyển đến đầu vòng lặp (bỏ qua các câu lệnh còn lại trong thân).
Ví dụ: Viết chương trình in ra câu "Hello KSEC.INFO" 3 lần.

Code:
#include <stdio.h> 

#include <conio.h>
#define K "Hello KSEC.INFO\n"
main()
{
int i;
for(i = 1; i<=3; i++)
printf("%s", K);
getch();
}
*Kết quả in ra màn hình
Code:
Hello KSEC.INFO
Hello KSEC.INFO
Hello KSEC.INFO
Lưu ý:Có dấu chấm phẩy sau lệnh for(i=1; i<=3; i++); →các lệnh thuộc vòng lặp for sẽ không được thực hiện.
Ví dụ: Viết chương trình nhập vào 5 số nguyên. Tính và in ra tổng của chúng. 

Code:
#include <stdio.h>
#include <conio.h>
main()
{
int i, n, s;
s = 0;
for(i = 1; i<=5 i++)
{
  printf("Nhap vao so thu %d :", i);
scanf("%d", &n);
  s += n;
}
printf("Tong: %d", s);
getch();
}
*Kết quả in ra màn hình
Code:
Nhap vao so thu 1: 5

Nhap vao so thu 2: 4
Nhap vao so thu 3: 3
Nhap vao so thu 4: 2
Nhap vao so thu 5: 1
Tong: 15.
Ví dụ: Viết chương trình nhập vào số nguyên n. Tính tổng các giá trị chẵn từ 1 đến n.
Code:
#include <stdio.h>
#include <conio.h>
main()
{
int i, n, s = 0;
printf("Nhap vao so n: ");
scanf("%d", &n);
s = 0;
for(i = 1; i<=n; i++)
{
  if (i % 2== 0)    //  neu i la so chan
  s += i;
}
printf("Tong: %d", s);
getch();
}
*Kết quả in ra màn hình
Code:
Nhap vao so n : 9
Tong: 20. 
Ví dụ: Một vài ví dụ thay đổi biến điều khiển vòng lặp.
- Thay đổi biến điều khiển từ 1 đến 100, mỗi lần tăng 1:
for(i = 1; i <= 100; i++)
- Thay đổi biến điều khiển từ 100 đến 1, mỗi lần giảm 1:
for(i = 100; i >= 1; i--)
- Thay đổi biến điều khiển từ 7 đến 77, mỗi lần tăng 7:
for(i = 7; i <= 77; i += 7)
- Thay đổi biến điều khiển từ 20 đến 2, mỗi lần giảm 2:
for(i = 20; i >= 2; i –= 2)
Ví dụ: Nhập vào 1 dãy số nguyên từ bàn phím đến khi gặp số 0 thì dừng. In ra tổng các số nguyên dương. 

Code:
#include <stdio.h>
#include <conio.h>
main()
{
int n, tong = 0;
for(; ;)
{
  printf("Nhap vao 1 so nguyen: ");
scanf("%d", &n);
  if (n < 0)
  continue;  //n < 0 quay nguoc len dau vong lap
  if (n == 0)
  break;    //n = 0 thoat vong lap
  tong += n;
}
printf("Tong: %d.\n", tong);
getch();
}
*Kết quả in ra màn hình
Code:
Nhap vao 1 so nguyen: -8
Nhap vao 1 so nguyen: 3
Nhap vao 1 so nguyen: -5
Nhap vao 1 so nguyen: 7
Nhap vao 1 so nguyen: 0
Tong: 10
_ 
*Lệnh break
Thông thường lệnh break dùng để thoát khỏi vòng lặp không xác định điều kiện dừng hoặc bạn muốn dừng vòng lặp theo điều kiện do bạn chỉ định. Việc dùng lệnh break để thoát khỏi vòng lặp thường sử dụng phối hợp với lệnh if. Lệnh break dùng trong for, while, do…while, switch. Lệnh break thoát khỏi vòng lặp chứa nó.
*Lệnh continue
Được dùng trong vòng lặp for, while, do…while. Khi lệnh continue thi hành quyền điều khiển sẽ trao qua cho biểu thức điều kiện của vòng lặp gần nhất. Nghĩa là lộn ngược lên đầu vòng lặp, tất cả những lệnh đi sau trong vòng lặp chứa continue sẽ bị bỏ qua không thi hành.

*Bài hôm nay mình sẽ dừng ở đây, và thường lệ mình sẽ đưa ra 1 số bài tập các bạn làm và comment ở dưới nhé
1.Lập chương trình để :
-nhập 1 dãy số từ bàn phím
-Tính trung bình cộng của các số dương và trung bình cộng các số âm trong dãy số trên và in ra màn hình 2 tổng
2. Lập chương trình tính giai thừa của n ( n nhập từ bàn phím)
0 Comments
G+ Comments
Comments

0 comments:

Post a Comment

 
Top

Nhận xét mới đăng tải!

Loading…
X