Câu lệnh có điều kiện C: IF, IF Else và IF Else lồng nhau với ví dụ

Câu lệnh có điều kiện trong C là gì?

Câu lệnh có điều kiện trong C lập trình được sử dụng để đưa ra quyết định dựa trên các điều kiện. Các câu lệnh có điều kiện thực hiện tuần tự khi không có điều kiện nào xung quanh câu lệnh. Nếu bạn đặt một số điều kiện cho một khối câu lệnh, luồng thực thi có thể thay đổi dựa trên kết quả được đánh giá bởi điều kiện đó. Quá trình này được gọi là ra quyết định trong 'C.'

Trong lập trình C, các câu lệnh điều kiện có thể thực hiện được nhờ sự trợ giúp của hai cấu trúc sau:

1. Câu lệnh if

2. Câu lệnh if-else

Nó còn được gọi là phân nhánh vì chương trình quyết định câu lệnh nào sẽ thực thi dựa trên kết quả của điều kiện được đánh giá.

Câu lệnh if

Đây là một trong những câu lệnh điều kiện có tác dụng mạnh mẽ. Câu lệnh if chịu trách nhiệm sửa đổi luồng thực thi của chương trình. Câu lệnh if luôn được sử dụng với một điều kiện. Điều kiện được đánh giá trước khi thực hiện bất kỳ câu lệnh nào bên trong phần thân của If. Cú pháp của câu lệnh if như sau:

 if (condition) 
     instruction;

Điều kiện đánh giá là đúng hoặc sai. True luôn là giá trị khác 0 và false là giá trị chứa 0. Các lệnh có thể là một lệnh đơn hoặc một khối mã được bao bọc bởi dấu ngoặc nhọn { }.

Chương trình sau minh họa cách sử dụng cấu trúc if trong lập trình 'C':

#include<stdio.h>
int main()
{
	int num1=1;
	int num2=2;
	if(num1<num2)		//test-condition
	{
		printf("num1 is smaller than num2");
	}
	return 0;
}

Đầu ra:

num1 is smaller than num2

Chương trình trên minh họa việc sử dụng cấu trúc if để kiểm tra sự bằng nhau của hai số.

Nếu tuyên bố

  1. Trong chương trình trên, chúng ta đã khởi tạo hai biến num1, num2 với giá trị lần lượt là 1, 2.
  2. Sau đó, chúng ta sử dụng if với biểu thức kiểm tra để kiểm tra số nào nhỏ nhất và số nào lớn nhất. Chúng ta đã sử dụng biểu thức quan hệ trong cấu trúc if. Vì giá trị của num1 nhỏ hơn num2 nên điều kiện sẽ có giá trị đúng.
  3. Như vậy nó sẽ in câu lệnh bên trong khối If. Sau đó, điều khiển sẽ đi ra ngoài khối và chương trình sẽ kết thúc với kết quả thành công.

Quan hệ Operaxoắn

C có sáu toán tử quan hệ có thể được sử dụng để xây dựng biểu thức Boolean nhằm đưa ra quyết định và kiểm tra các điều kiện, trả về true hoặc false :

<ít hơn

<= nhỏ hơn hoặc bằng

> lớn hơn

>= lớn hơn hoặc bằng

== bằng

!= không bằng

Lưu ý rằng phép kiểm tra bằng nhau (==) khác với toán tử gán (=) vì đây là một trong những vấn đề phổ biến nhất mà lập trình viên gặp phải khi trộn lẫn chúng.

Ví dụ:

int x = 41;
x =x+ 1;
if (x == 42) {
   printf("You succeed!");}

Đầu ra:

 You succeed

Hãy nhớ rằng điều kiện đánh giá thành giá trị khác 0 được coi là đúng.

Ví dụ:

int present = 1;
if (present)
  printf("There is someone present in the classroom \n");

Đầu ra:

There is someone present in the classroom

Câu lệnh If-Else

Câu lệnh If-Else

Câu lệnh if-other is là phiên bản mở rộng của If. Dạng tổng quát của if-else như sau:

if (test-expression)
{
    True block of statements
}
Else
{
    False block of statements
}
Statements;

Trong loại cấu trúc này, nếu giá trị của biểu thức kiểm tra là đúng thì khối câu lệnh đúng sẽ được thực thi. Nếu giá trị của biểu thức kiểm tra là sai thì khối câu lệnh sai sẽ được thực thi. Trong mọi trường hợp, sau khi thực thi, điều khiển sẽ tự động được chuyển sang các câu lệnh xuất hiện bên ngoài khối If.

Các chương trình sau minh họa cách sử dụng cấu trúc if-else:


Chúng ta sẽ khởi tạo một biến với một giá trị nào đó và viết chương trình để xác định xem giá trị đó nhỏ hơn 10 hay lớn hơn 10.

Hãy bắt đầu.

#include<stdio.h>
int main()
{
	int num=19;
	if(num<10)
	{
		printf("The value is less than 10");
	}
	else
	{
		printf("The value is greater than 10");
	}
	return 0;
}

Đầu ra:

The value is greater than 10

Câu lệnh If-Else

  1. Chúng ta đã khởi tạo một biến có giá trị 19. Chúng ta phải tìm hiểu xem số này lớn hơn hay nhỏ hơn 10 bằng chương trình 'C'. Để làm điều này, chúng tôi đã sử dụng cấu trúc if-else.
  2. Ở đây chúng ta đã cung cấp điều kiện num<10 vì chúng ta phải so sánh giá trị của mình với 10.
  3. Như bạn có thể thấy khối đầu tiên luôn là khối đúng, nghĩa là nếu giá trị của biểu thức kiểm tra là đúng thì khối đầu tiên là If sẽ được thực thi.
  4. Khối thứ hai là khối khác. Khối này chứa các câu lệnh sẽ được thực thi nếu giá trị của biểu thức kiểm tra trở thành sai. Trong chương trình của chúng tôi, giá trị của num lớn hơn 10 do đó điều kiện kiểm tra trở thành sai và khối khác được thực thi. Do đó, đầu ra của chúng ta sẽ đến từ một khối khác có tên “Giá trị lớn hơn XNUMX”. Sau if-else, chương trình sẽ kết thúc với kết quả thành công.

Trong lập trình 'C', chúng ta có thể sử dụng nhiều cấu trúc if-else bên trong nhau, được gọi là lồng các câu lệnh if-else.

Biểu thức có điều kiện

Có một cách khác để diễn đạt câu lệnh if-else là đưa vào ?: nhà điều hành. Trong biểu thức điều kiện ?: toán tử chỉ có một câu lệnh liên quan đến if và else.

Ví dụ:

#include <stdio.h>
int main() {
  int y;
  int x = 2;
   y = (x >= 6) ?  6 : x;/* This is equivalent to:  if (x >= 5)    y = 5;  else    y = x; */
   printf("y =%d ",y);
  return 0;}

Đầu ra:

y =2

Câu lệnh If-else lồng nhau

Khi cần một loạt quyết định, if-else lồng nhau sẽ được sử dụng. Lồng nhau có nghĩa là sử dụng một cấu trúc if-else bên trong một cấu trúc khác.

Hãy viết một chương trình để minh họa việc sử dụng if-else lồng nhau.

#include<stdio.h>
int main()
{
	int num=1;
	if(num<10)
	{
		if(num==1)
		{
			printf("The value is:%d\n",num);
		}
		else
		{
			printf("The value is greater than 1");
		}
	}
	else
	{
		printf("The value is greater than 10");
	}
	return 0;
}

Đầu ra:

The value is:1

Chương trình trên kiểm tra xem một số nhỏ hơn hay lớn hơn 10 và in kết quả bằng cách sử dụng cấu trúc if-else lồng nhau.

Câu lệnh If-else lồng nhau

  1. Đầu tiên, chúng ta khai báo một biến num có giá trị là 1. Sau đó, chúng ta sử dụng cấu trúc if-else.
  2. Trong if-else bên ngoài, điều kiện được cung cấp sẽ kiểm tra xem một số có nhỏ hơn 10 hay không. Nếu điều kiện đúng thì và chỉ khi đó nó mới thực thi lệnh vòng trong. Trong trường hợp này, điều kiện là đúng do đó khối bên trong được xử lý.
  3. Trong khối bên trong, chúng ta lại có một điều kiện kiểm tra xem biến của chúng ta có chứa giá trị 1 hay không. Khi một điều kiện là đúng, thì nó sẽ xử lý khối If, nếu không, nó sẽ xử lý khối else. Trong trường hợp này, điều kiện là đúng, do đó khối If được thực thi và giá trị được in ra màn hình đầu ra.
  4. Chương trình trên sẽ in giá trị của một biến và thoát ra thành công.

Hãy thử thay đổi giá trị của biến xem chương trình hoạt động như thế nào.

LƯU Ý: Trong if-else lồng nhau, chúng ta phải cẩn thận với việc thụt lề vì có nhiều cấu trúc if-else tham gia vào quá trình này, do đó việc tìm ra các cấu trúc riêng lẻ trở nên khó khăn. Việc thụt lề thích hợp giúp bạn dễ dàng đọc chương trình.

Các câu lệnh Else-if lồng nhau

Lồng nhau else-if được sử dụng khi cần có các quyết định đa đường.

Cú pháp chung về cách xây dựng thang else-if trong lập trình 'C' như sau:

 if (test - expression 1) {
    statement1;
} else if (test - expression 2) {
    Statement2;
} else if (test - expression 3) {
    Statement3;
} else if (test - expression n) {
    Statement n;
} else {
    default;
}
Statement x;

Kiểu cấu trúc này được gọi là thang else-if. Chuỗi này nhìn chung trông giống như một cái thang nên nó còn được gọi là thang else-if. Các biểu thức kiểm tra được đánh giá từ trên xuống dưới. Bất cứ khi nào tìm thấy một biểu thức kiểm tra thực sự, câu lệnh liên quan đến nó sẽ được thực thi. Khi tất cả n biểu thức kiểm tra trở thành sai thì câu lệnh else mặc định sẽ được thực thi.

Chúng ta hãy xem công việc thực tế với sự trợ giúp của một chương trình.

#include<stdio.h>
int main()
{
	int marks=83;
	if(marks>75){
		printf("First class");
	}
	else if(marks>65){
		printf("Second class");
	}
	else if(marks>55){
		printf("Third class");
	}
	else{
		printf("Fourth class");
	}
	return 0;
}

Đầu ra:

First class

Chương trình trên sẽ in điểm theo số điểm đạt được trong một bài kiểm tra. Chúng ta đã sử dụng cấu trúc bậc thang else-if trong chương trình trên.

Câu lệnh Else-if lồng nhau

  1. Chúng tôi đã khởi tạo một biến có dấu. Trong cấu trúc bậc thang else-if, chúng ta đã cung cấp nhiều điều kiện khác nhau.
  2. Giá trị từ các dấu biến sẽ được so sánh với điều kiện đầu tiên vì câu lệnh liên quan đến nó đúng sẽ được in trên màn hình đầu ra.
  3. Nếu điều kiện kiểm tra đầu tiên sai thì nó sẽ được so sánh với điều kiện thứ hai.
  4. Quá trình này sẽ tiếp tục cho đến khi tất cả biểu thức được đánh giá, nếu không, quyền điều khiển sẽ thoát khỏi thang else-if và câu lệnh default sẽ được in.

Hãy thử sửa đổi giá trị và nhận thấy sự thay đổi ở đầu ra.

Tổng kết

  • Các câu lệnh ra quyết định hoặc phân nhánh được sử dụng để chọn một đường dẫn dựa trên kết quả của biểu thức được đánh giá.
  • Nó còn được gọi là câu lệnh điều khiển vì nó điều khiển luồng thực thi của một chương trình.
  • 'C' cung cấp các cấu trúc if, if-else cho các câu lệnh ra quyết định.
  • Chúng ta cũng có thể lồng if-else vào nhau khi cần kiểm tra nhiều đường dẫn.
  • Thang else-if được sử dụng khi chúng ta phải kiểm tra nhiều cách khác nhau dựa trên kết quả của biểu thức.