Cấu trúc điều khiển


tự học php cơ bản 12/06/2015 Cùng chuyên mục

Tìm hiểu cấu trúc rẽ hướng( nhánh) theo điều khiện: if then else...switch case; các vòng lặp: for loop, while loop, foreach...loop.

Cũng như các ngôn ngữ khác, php cũng có các cấu trúc điều khiển:
- rẽ hướng( nhánh) theo điều khiện: if then else...switch case;
- các vòng lặp: for loop, while loop, foreach...loop.

 Cấu trúc rẽ hướng ( nhánh ):

Nếu (biểu thức điều kiện ) thì
{
     các hành động xảy ra khi điều kiện đúng
}
nếu không – (với điều kiện khác)
{
    các hành động xảy ra khi điều kiện đúng
}
còn nếu không thì (các trường hợp còn lại)
{
   các hành động xảy ra cho các trường hợp còn lại
}

Cú pháp tổng quát trong php:

if (biểu thức điều kiện) (1)
{
	//code thực thi khi đk 1 đúng
}
elseif (biểu thức điều kiện) (2 – when expression 1 value false, check this value)
{
	//code thực thi khi đk 2 đúng
 }
else 
{
	//các trường hợp khác
}

Với câu lệnh if...else đơn có thể được viết ngắn gọn 
ví dụ:

if (expression)
{
    //code 1
}
else
{
   //code 2
}

tương tự với: (expression) ? Code 1 : code 2;

Ví dụ: Kiểm tra a lớn hay khác 0

<?php	
	//gán giá trị cho biến $a
	$a = 2;
	if($a>0)
	{
		//điều kiện đúng, xuất ra 'lớn hơn 0'
		echo "Lớn hơn 0";
	}
	else
	{
		//điều kiện sai, xuất ra 'khác 0'
		echo "Khác 0";
	}
	//sử dụng dạng ngắn gọn
	echo ($a > 0) ? "Lớn hơn 0" : "Khác 0";
?>

Cấu trúc switch () case:

Với cấu trúc điều khiển có nhiều điều kiện để kiểm tra, code sẽ dài – độ khó hiểu sẽ tăng thêm. Cấu trúc switch case được sử dụng để thay thế cho cấu trúc if then else với nhiều kiểm tra. Với phát biểu:
switch: chuyển tới trường hợp (case) - với Trường hợp 0 thì thực thi đoạn code -> (break), thực thi xong nhảy ra khỏi vòng kiểm tra - nếu các trường hợp không thỏa thì kiểm tra trường hợp mặc định (default). Các bạn lưu ý, không quên lệnh break - nếu không sẽ bị lặp mãi không dừng, để cẩn thận luôn luôn gõ default: break; khi sử dụng cấu trúc switch () - Cú pháp chung:

switch (case)
{
	case value 0:
	//code thực thi khi case = 0
	break;
	case value 1:
	//code thực thi khi case = 1
	break;
	....
	case value n:
	break;
	default:
	break;
}

Ví dụ: in ra phần chữ của số nguyên a = 1; 2; 3; – mặc định nếu số nguyên được gán giá trị sẽ in ra số nguyên.

Với cấu trúc if then else bạn sẽ phải viết:

$a = 1; 
$a = 2; 
$a = 3; 
if ($a == 1)
{
  echo 'so 1';
}
elseif ($a == 2)
{
  echo 'so 2';
}
elseif ($a == 3)
{
  echo 'so 3';
}
else
{
  echo 'so nguyen';
}

Với cấu trúc switch case bạn sẽ viết:

$a = 1; 
$a = 2; 
$a = 3; 
$a = 4;
switch($a)
{
	case 1:
	echo 'so 1';
	break;
	case 2:
	echo 'so 2';
	break;
	case 3:
	echo 'so 3';
	break;
	default:
	echo 'so nguyen';
	break;
}

Vòng lặp:

Dùng để gom các khối lệnh được thực hiện đi – thực hiện lại.

- vòng lặp while (lặp có điều kiện)

while (đk lặp)
{
  //code
}

điều kiện lặp là 1 biểu thức logic. Kết thúc việc thực hiện khối lệnh khi điều kiện lặp được thỏa.Ví dụ: in ra các số nguyên nhỏ hơn 5. 
phân tích: để in một số nguyên chúng ta có thể dùng lệnh: echo $so_nguyen;

Nếu in số nguyên là 1 câu lệnh sẽ là echo 1; in số nguyên 2 câu lệnh sẽ là echo 2; Như thế về lệnh echo $so_nguyen được dùng chung, chỉ khác là giá trị số nguyên nhận vào. Việc xác định điều kiện là để chương trình có tính dừng, nếu không nó sẽ chạy mãi [ lổi ]. Ở đây in ra tự nhiên nhỏ hơn 5, vậy sẽ in ra các số 0; 1; 2; 3; 4; 5 => sẽ in ra 5 lần, tuần tự. Như thế, chương trình sẽ chỉ chạy 5 lần thôi [tính dừng].

Ví dụ: dùng vòng lặp while để in ra 5 số tự nhiên nhỏ hơn 5 

$i = 0; 
while ($i < 5)
{
  echo $i;
  $i++;
}

- Vòng lặp for.. ( xác định được chính xác số lần lặp ):

Cấu trúc:

for ($variable = start value; $variable < max value; $varibale step)
{
  //code
}

// chú thích variable là tên biến sẽ chạy để xét điều kiện,
//chú thích max value (giá trị lớn nhất - chạy đến đó sẽ dừng),
//chú thích strep ( bước nhảy )

Sử dụng vòng lặp for trong trường hợp đã biết số lần lặp.
Ví dụ: Dùng vòng lặp for in ra số tự nhiên nhỏ hơn 5.

for($i = 0; $i < 5; $i++)
{
   echo $i;
}

Câu lệnh thoát khỏi vòng lặp:

+ break: được đặt trong khối lệnh. Khi gặp câu lệnh này, ngay lập tức dừng việc thực thi các đoạn code sau đó (trong khối lệnh) và dừng ngay việc lặp.
+ continue: được đặt trong khối lệnh. Khi gặp câu lệnh này, sẽ ngừng việc thực thi các đoạn code sau đó ( trong khối lệnh), bỏ qua 1 bước lặp [bước lặp hiện tại] – thực hiện bước lặp kế tiếp.

Ví dụ: In ra mảng 5 phần tử - nếu giá trị âm thì không in nữa , nếu giá trị lớn hơn 3 thì không in giá trị đó

<?php	
	//khởi tạo mảng 5 phần tử
	$arr = array(1,2,3,-4,5);
	//đếm số lượng phần tử của mảng
	$n = count($arr);
	for($i = 0; $i<$n; $i++)
	{
		//nếu phần tử mảng nhỏ hơn 0 thì thoát khỏi vòng lặp
		if($arr[$i] < 0)
		{
			break;
		}
		elseif ($arr[$i] == 3) //nếu phần tử mảng bằng 3 thì bỏ qua
		{
			continue;
		}
		else //còn lại thì in ra phần tử mảng
		{
			echo 'So nguyen: ',$arr[$i],'<br>';
		}
	}
?>

TỔNG KẾT

Cấu trúc điều khiển là một nội dung quan trọng, các bạn cần nắm chắc - nhất là hiểu ý nghĩa và cách sử dụng.


Bài cùng chuyên mục:




Bình luận:


php