Jump to content

Welcome to [ iT ] Forums
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. If you already have an account, login here - otherwise create an account for free today!
Cộng đồng Âm nhạc Việt Nam

Hình ảnh

Tài liệu về lệnh if lồng nhau trong ngôn ngữ C

lập trình C

  • Please log in to reply
No replies to this topic

#1
FrankLee

FrankLee

    Thành viên mới

  • Newbies
  • 14 Bài Viết:

Cấu trúc if lồng nhau

-Quyết định sẽ thực hiện 1 trong n khối lệnh cho trước.

*Cú pháp lệnh

-Cú pháp là một trong 2 dạng trên, nhưng trong 1 hoặc nhiều khối lệnh bên trong phải chứa ít nhất một trong 2 dạng trên gọi là cấu trúc if lồng nhau.

-Thường cấu trúc if lồng nhau càng nhiều cấp độ phức tạp càng cao, chương trình chạy càng chậm và trong lúc lập trình dễ bị nhầm lẫn.

 

Lưu ý: Các lệnh if…else lồng nhau thì else sẽ luôn luôn kết hợp với if nào chưa có else gần nhất. Vì vậy khi gặp những lệnh if không có else, Bạn phải đặt chúng trong những khối lệnh rõ ràng để tránh bị hiểu sai câu lệnh. Trong lap trinh c co ban

Ví dụ: Bạn viết các dòng lệnh sau:

Code:


if (n > 0)
     if (a > B)
    x = a;
else
    x = b;

-Mặc dù Bạn viết lệnh else thẳng hàng với if (n > 0), nhưng lệnh else ở đây được hiểu đi kèm với if (a > B), vì nó nằm gần với if (a > B) nhất và if (a > B) chưa có else. Để dễ nhìn và dễ hiểu hơn Bạn viết lại như sau:

Code:


if (n > 0)
   if (a > B)
         x = a;
   else
         x = b;

-Còn nếu Bạn muốn lệnh else là của if (n > 0) thì Bạn phải đặt if (a > B) x = a trong một khối

lệnh. Bạn viết lại như sau:

Code:


if (n > 0)
 {
     if (a > B)
         x = a;
 }
else
x = b;

Ví dụ: Viết chương trình nhập vào điểm của một học sinh. In ra xếp loại học tập của học sinh đó. (Cách xếp loại. Nếu điểm >= 9, Xuất sắc. Nếu điểm từ 8 đến cận 9, Giỏi. Nếu điểm từ 7 đến cận 8, Khá. Nếu điểm từ 6 đến cận 7, TBKhá. Nếu điểm từ 5 đến cận 6, TBình. Còn lại là Yếu).

*Mô tả giải thuật: Điểm số nhập vào nếu hợp lệ(0 <= điểm <= 10), bạn tiếp tục công việc xếp loại, ngược

lại thông báo "Nhập điểm không hợp lệ". Việc xếp loại bạn sử dụng cấu trúc else if.

*Chương trình sẽ được viết như sau

Code:

#include <stdio.h>
#include <conio.h>
main()
{
 float diem;
 printf("Nhap vao diem so: ");
scanf("%f", &fdiem);
if (diem >=0 && diem <=10)
 {
   if (diem >=9)
       printf("Xep loai = Xuat sac.\n");
   else if (diem >=8)
       printf("Xep loai = Gioi.\n");
   else if (diem >=7)
       printf("Xep loai = Kha.\n");
   else if (diem >=6)
       printf("Xep loai = TBKha.\n");
   else if (diem >=5)
       printf("Xep loai = TBinh.\n");
 else
       printf("Xep loai = Yeu.\n");
 }

else
 printf("Nhap diem khong hop le.\n");
getch();
}

-Trong chương trình trên thực ra mình có thể bỏ cặp dấu { } ở thân chương trình và chương trình vẫn đúng vì tất cả các if trong cấu trúc này đều có else, nên else printf("Nhap diem khong hop le.\n") đương nhiên là thuộc về if(diem >= 0 && diem <= 10).

-Giả sử trong cấu trúc else if không có dòng else printf("Xep loai = Yeu.\n") thì khi đó dòng else printf("Nhap diem khong hop le.\n") sẽ thuộc về cấu trúc else if chứ không thuộc về if (diem >=0 && diem <= 10).

-Đối với trường hợp đó bạn cần phải đặt cấu trúc else if vào trong { }, thì khi đó dòng else printf("Nhap diem khong hop le.\n) sẽ thuộc về if (diem >= 0 && diem <= 10).

-Nói như vậy chắc nhiều người vẫn chưa hình dung ra chương trình sẽ chạy như nào mình sẽ thêm một ví dụ nữa mọi người sẽ hiểu thêm

Ví dụ: Viết chương trình nhập vào 3 số nguyên a, b, c. Tìm và in ra số lớn nhất.

*Mô tả giải thuật:Trước tiên bạn so nếu a>b, mà a>c thì a lớn nhất, ngược lại c lớn nhất, còn nếu a<=b, mà

c<b thì b lớn nhất, ngược lại c lớn nhất.

*Chương trình sẽ được viết như sau

Code:

#include <stdio.h>
#include <conio.h>
main()
{
int a, b, c;
printf("Nhap vao so a: ");
scanf("%d", &a);
printf("Nhap vao so b: ");
scanf("%d", &B);
printf("Nhap vao so c: ");
scanf("%d", &c);
if (a > B)
     if (a > c)
         printf("%d lon nhat.\n", a);
     else
         printf("%d lon nhat.\n", c);
else
   if (b > c)
       printf("%d lon nhat.\n", B);
   else
       printf("%d lon nhat.\n", c);
getch();
}

Nguồn : lập trình c







Also tagged with one or more of these keywords: lập trình C



Perfumista - Thong tin nuoc hoa

Stars Counter Game

Balloon vs. Thorns

MU Phuc Hung

Làm Việc Tài Nhà

Mu Da Nang

Tuyển Nhân Viên Bán Hàng

Tư vấn sức khỏe trực tuyến

Close [X]