Chức năng:
Nếu Biểu thức điều kiện có giá trị bằng 1 thì thực hiện Câu lệnh 1.
Ngược lại thì thực hiện Câu lệnh 2 (Dạng 2), hoặc thực hiện các lệnh sau if (Dạng 1)
Ví dụ: Giải phương trình bậc hai:
#include "stdio.h"
#include "math.h"
void main()
{
int a,b,c;
float x1,x2,del;
clrscr();
printf("\nNhap he so a = "); scanf("%d",&a);
33 trang |
Chia sẻ: Mr Hưng | Lượt xem: 1128 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Ngôn ngữ C - Chương V: Các toán tử điều khiển, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
CHƯƠNG VCÁC TOÁN TỬ ĐIỀU KHIỂNToán tử IF Cú pháp: Dạng 1: if (Biểu thức điều kiện) ; Dạng 2: if (Biểu thức điều kiện) ; else ; Chức năng:Nếu Biểu thức điều kiện có giá trị bằng 1 thì thực hiện Câu lệnh 1.Ngược lại thì thực hiện Câu lệnh 2 (Dạng 2), hoặc thực hiện các lệnh sau if (Dạng 1) Ví dụ: Giải phương trình bậc hai: #include "stdio.h" #include "math.h" void main() { int a,b,c; float x1,x2,del; clrscr(); printf("\nNhap he so a = "); scanf("%d",&a); printf("\nNhap he so b = "); scanf("%d",&b); printf("\nNhap he so c = "); scanf("%d",&c); del=pow(b,2)-4*a*c; if (del >= 0) { printf("Phuong trinh co nghiem"); x1=(b-sqrt(del))/2*a; x2=(b+sqrt(del))/2*a; printf("\n x1 = %6.2f",x1); printf("\n x2 = %6.2f",x2); } else printf("\n Phuong trinh vo nghiem"); getch(); } Chú ý:Hoàn toàn giống các ngôn ngữ lập trình khác, thì C cũng cho phép sử dụng các toán tử if lồng nhau. Ví dụ: if (a>b) if (b>c) z = b else z = c ...Một dạng khác của kiểu toán tử if lồng nhau: if (Biểu thức điều kiện 1) ; else if (biểu thức điều kiện 2) ; . . . else if (biểu thức điều kiện n-1) ; else ; Ví dụ: Viết chương trình nhập vào một số từ 1 đến 7 và cho hiểu thị thư trong tuần. #include "stdio.h" void main() { int t; clrscr(); printf("Nhap so thu tu cua ngay trong tuan t = "); scanf("%d",&t); if (t==1) printf("\nNgay chu nhat"); else if (t==2) printf("\nNgay thu hai"); else if (t==3) printf("\nNgay thu ba"); else if (t==4) printf("\nNgay thu tu"); else if (t==5) printf("\nNgay thu nam"); else if (t==6) printf("\nNgay thu sau"); else printf("\nNgay thu bay"); getch();}Toán tử switch Về ý tưởng gần giống toán tử Case .. Of của Pascal. Toán tử switch cho phép căn cứ vào giá trị của một biểu thức nguyên để chọn một trong nhiểu cách nhảy.Cú pháp: swith (Biểu thức) { case n1: ; case n2: . . case nk: [default: ;]} Trong đó:ni là các số nguyên, hằng ký tự hoặc biểu thức hằng, các ni cần có các giá trị khác nhau.Đoạn chương trình đặt giữa { và } chính là thân của switch.default là một thành phần không bắt buộcThứ tự của ni và default không theo trật tự nào cả.Sự hoạt động của switch tuỳ thuộc vào giá trị của biểu thức.Khi biểu thức có giá trị ni thì nhảy tới câu lệnh ni Khi biểu thức khác các giá trị ni thì nhảy đến câu lệnh có nhãn default (nếu có), hoặc ra khỏi switch.Ra khỏi switch: Máy sẽ ra khỏi switch khi gặp lệnh break hoặc gặp dấu ngoặc đống cuối cùng (})của switch. Có thể dùng lệnh goto trong thân switch để nhảy đến một lệnh ngoài thân switch Nếu switch nằm trong một hàm nào thì có thể sử dụng lệnh return để ra khỏi hàm đó. Chú ý: Khi máy nhảy tới một lệnh nào thì sự hoạt động tiếp theo của nó sẽ phụ thuộc vào các lệnh đứng sau câu lệnh này.Tức là nếu máy nhảy tới câu lệnh có nhãn case ni thì nó có thể thực hiện tất cả các lệnh sau đó cho tới khi gặp lệnh break, goto hoặc return. Ví dụ: Viết lại chương trình ở ví dụ trên bằng cách sử dụng switch.#include "stdio.h"void main(){int ch,t;tt: clrscr();printf("Nhap so thu tu cua ngay trong tuan t = ");scanf("%d",&t);switch (t){case 1:printf("\nNgay chu nhat");break;case 2:printf("\nNgay thu hai");break;case 3:printf("\nNgay thu ba");break;case 4:printf("\nNgay thu tu");break;case 5:printf("\nNgay thu nam");break;case 6:printf("\nNgay thu sau");break;case 7:printf("\nNgay thu bay");break;default:printf("\nNhap lai");getch();goto tt;}printf("\nTiep tuc khong 1/0 ch = ");scanf("%d",&ch);if (ch==1) goto tt;}Toán tử goto và nhãnNhãn có cùng dạng như tên biến và đi liền sau nó là dấu (:), nhãn có thể gán cho bất kỳ câu lệnh nào trong chương trình Ví dụ: tt:clrscr(); /* tt là nhãn của câu lệnh xoá màn hình clrscr()*/Toán tử goto có dạng: goto nhãn; Khi gặp câu lệnh này mãy sẽ nhảy tới câu lệnh co nhãn viết sau từ khoá goto Chú ý:Câu lệnh goto và nhãn cần nằm trong một hàm. Điều đó nói lên rằng: Toán tử goto chỉ cho phép nhảy từ vị trí này sang vị trí khác trong thân của hàm. Không dùng nhảy từ hàm này sang hàm khác.Không cho phép dùng toán tử goto để nhảy từ ngoài vào trong một khối lệnh, nhưng điều ngược lại thì có thể thực hiện được.Toán tử for Cú pháp: for (biểu thức 1; biểu thức 2; biểu thức 3) Chức năng: Cho thực hiện câu lệnh sau for với số lần định trước bởi các biểu thức trong for. Trong đó: - Biểu thức 1: Là một toán tử gán để tạo giá trị khởi đầu cho biến điều khiển. - Biểu thức 2: Là một quan hệ logic biểu thị điều kiện để tiếp tục chương trình. - Biểu thức 3: Là một toán tử gán đùng để thay đổi giá trị của biến điều khiển - Trong ba Biểu thức trong ngoặc for có thể thiểu không đủ ba hoặc nhiều hơn ba biểu thức Chú ý:Khi biểu thức 2 vắng mặt thì nó luôn luôn được xem là đúng. Trong trường hợp này việc ra khỏi vòng lặp for cần được thực hiện nhờ lệnh break, goto hoặc return.Trong dấu ngoặc tròn sau từ khoá for gồm ba phần phân cách nhau bởi dấu ;. Trong mỗi phần không những có thể viết một biểu thức mà còn có quyền được viết một dãy biểu thức phân cách nhau bởi dấu phẩy (,). Khi đó các biểu thức trong mỗi phần sẽ được xác định lần lượt từ trái sang phải. Tính đúng sai của dãy biểu thức trong phần thứ hai được hiểu là tính đúng sai của biểu thức cuối cùng trong dãy này. Bên trong thân của một toán tử for có thể sử dụng các toán tử for khác. Tức là các vòng for lồng nhau. Khi gặp câu lệnh break trong thân for, máy sẽ ra khỏi toán tử for sâu nhất chứa câu lệnh này Trong thân for có thể sử dụng toán tử goto để nháy ra khỏi vòng for đến một vị trí bất kỳ nào đó. Cũng có thể dùng return trong thân for để trở về một hàm nào đó. Ví dụ 1: Nhập và Sắp xếp mảng một chiều theo chiều tăng dần. #include "stdio.h" main() { int i,j,temp; int a[10]; clrscr(); for (i=0;ia[j]) { temp = a[i]; a[i] = a[j]; a[j] = temp; } for (i=0;imax) max=a[i][j]; if (a[i][j] Chức năng: Câu lệnh vẩn còn được thực hiện tức là vòng lặp được thực hiên khi Biểu thức điều kiện còn giá trị đúng (giá trị khác 0), và Câu lệnh không được thực hiện tức là ra khỏi vòng lặp khi Biểu thức điều kiện có giá trị ngược lại.Chú ý:Trong dấu ngoặc tròn sau từ khoá while không những có thể viết một biểu thức mà còn có quyền được viết một dãy biểu thức phân cách nhau bởi dấu phẩy (,). Tính đúng sai của dãy biểu thức được hiểu là tính đúng sai của biểu thức cuối cùng trong dãy.Bên trong thân của một toán tử while có thể sử dụng các toán tử while khác. Tức là các vòng while lồng nhau. Khi gặp câu lệnh break trong thân while, máy sẽ ra khỏi toán tử while sâu nhất chứa câu lệnh này Trong thân while có thể sử dụng toán tử goto để nháy ra khỏi vòng for đến một vị trí bất kỳ nào đó. Cũng có thể dùng return trong thân while để trở về một hàm nào đó. Ví dụ: Viết chương trình xét xem một số nhập vào từ ban phím có phải là số nguyên tố không#include "stdio.h"main(){int i,j,n;clrscr();printf("Nhap mot so bat ky n = ");scanf("%d",&n);i=2;while (n%i0 && i while (Biểu thức điều kiện)Chức năng: Câu lệnh vẩn còn được thực hiện tức là vòng lặp được thực hiên khi Biểu thức điều kiện còn giá trị sai (giá trị = 0), và Câu lệnh không được thực hiện tức là ra khỏi vòng lặp khi Biểu thức điều kiện có giá trị ngược lại. Có thể hiểu là: Biểu thức điều kiện trong while dùng để thực hiện câu lệnh, còn Biểu thức điều kiện trong do-while dùng để thoát khỏi vòng lặp.
Các file đính kèm theo tài liệu này:
- baigianglaptrinhngonngucchuong_5_8184.ppt