Program control statement - Câu lệnh điều khiểnSon Le
Phần đầu của chuỗi 3 bài trong phần học lập trình từ cơ bản đến nâng cao trong chương trình với ngôn ngữ C++, giới thiệu về vòng lặp và những câu lệnh điều khiển
Bài 3: Cấu trúc điều khiển, hàm và xử lý sự kiện - Giáo trình FPTMasterCode.vn
Cấu trúc điều khiển (tiếp)
Cấu trúc lựa chọn
Lệnh lựa chọn kép
Lệnh đa lựa chọn
Cấu trúc lặp
Lặp không biết trước số lần lặp
Lặp biết trước số lần lặp
Hàm
Phạm vi biến
Mảng
Xử lý sự kiện
Cấu trúc điều khiển (tiếp)
Cấu trúc lựa chọn
Lệnh lựa chọn kép
Lệnh đa lựa chọn
Cấu trúc lặp
Lặp không biết trước số lần lặp
Lặp biết trước số lần lặp
Hàm
Phạm vi biến
Mảng
Xử lý sự kiện
Program control statement - Câu lệnh điều khiểnSon Le
Phần đầu của chuỗi 3 bài trong phần học lập trình từ cơ bản đến nâng cao trong chương trình với ngôn ngữ C++, giới thiệu về vòng lặp và những câu lệnh điều khiển
Bài 3: Cấu trúc điều khiển, hàm và xử lý sự kiện - Giáo trình FPTMasterCode.vn
Cấu trúc điều khiển (tiếp)
Cấu trúc lựa chọn
Lệnh lựa chọn kép
Lệnh đa lựa chọn
Cấu trúc lặp
Lặp không biết trước số lần lặp
Lặp biết trước số lần lặp
Hàm
Phạm vi biến
Mảng
Xử lý sự kiện
Cấu trúc điều khiển (tiếp)
Cấu trúc lựa chọn
Lệnh lựa chọn kép
Lệnh đa lựa chọn
Cấu trúc lặp
Lặp không biết trước số lần lặp
Lặp biết trước số lần lặp
Hàm
Phạm vi biến
Mảng
Xử lý sự kiện
1. 9. Câu lệnh rẽ nhánh if else
Trong thực tế không phải lúc nào việc tính toán cũng được
thực hiện một cách tuần tự, mà dựa trên việc giả định, câu
lệnh if else giúp chúng ta giải quyết vấn đề này. Có 3 dạng if.
Dạng 1: if (điều kiện)
khối lệnh;
Dạng 2: if (điều kiện)
khối lệnh 1;
else
khối lệnh 2;
Dạng 3: elseif
if (điều kiện 1)
khối lệnh 1;
elseif (điều kiện 2)
khối lệnh 2;
else
khối lệnh 3;
2. Dạng 1
Giải thích:
+ Điều kiện là một biểu thức (một phép toán so sánh)
+ Khối lệnh sẽ được thực hiện nếu Điều kiện là đúng (True)
if (điều kiện)
khối lệnh;
<?php
$a=15; $b=7;
if ($a>$b)
echo “a là số lớn hơn, và giá trị của a là: $a”;
?>
3. Dạng 2
Giải thích:
+Khối lệnh 1 sẽ được thực hiện nếu Điều kiện là đúng (True)
+Nếu Điều kiện ko đúng, nó sẽ chuyển sang thực hiện Khối lệnh 2
<?php
$a=7; $b=15;
if ($a>$b)
echo “a là số lớn hơn, và giá trị của a là: $a”;
else
echo “b là số lớn hơn, và giá trị của b là: $b”;
?>
if (điều kiện)
khối lệnh 1;
else
khối lệnh 2;
4. Dạng 3
Giải thích:
+Khối lệnh 1 sẽ được thực hiện nếu Điều kiện 1 là đúng (True)
+Nếu Điều kiện 1 ko đúng, nó kiểm tra Điều kiện 2:
+ Nếu Điều kiện 2 là đúng nó thực hiện Khối lệnh 2.
+ Nếu Điều kiện 2 ko đúng nó sẽ thực hiện Khối lệnh 3
<?php $a=7; $b=7;
if ($a>$b) echo “a là số lớn hơn, và giá trị của a là: $a”;
elseif ($a<$b) echo “b là số lớn hơn, và giá trị của b là: $b”;
else echo “a và b có giá trị bằng nhau”;
?>
if (điều kiện 1)
khối lệnh 1;
elseif (điều kiện 2)
khối lệnh 2;
else khối lệnh 3;
5. Dạng 3: Có thể thay thế elseif bằng if else lồng nhau như sau
<?php $a=7; $b=7;
if ($a>$b) echo “a là số lớn hơn, và giá trị của a là: $a”;
else
{
if ($a<$b) echo “b là số lớn hơn, và giá trị của b là: $b”;
else echo “a và b có giá trị bằng nhau”;
}
?>
if (điều kiện 1)
khối lệnh 1;
else
{
if (điều kiện 2)
khối lệnh 2;
else khối lệnh 3;
}
6. 10. Câu lệnh rẽ nhánh switch case
Khi có nhiều giả định, chúng ta có thể thay thế if else bằng
switch case. Cú pháp như sau
switch ($tên biến)
{
case giá trị 1:
khối lệnh 1;
break;
case giá trị 2:
khối lệnh 2;
break;
case giá trị n:
khối lệnh n;
break;
[default: khối lệnh n+1;]
}
switch case sẽ thực hiện như sau
+ Đầu tiên nó sẽ kiểm tra biến,
nếu biến = giá trị 1, nó sẽ thực
hiện khối lệnh 1.
+ Nếu biến ko = giá trị 1, nó sẽ
kiểm tra xem biến = giá trị 2 hay
ko, nếu có nó sẽ thực hiện khối
lệnh 2.
+ Cứ như thế, nếu tất cả các
trường hợp case đều không đúng,
nó sẽ thực hiện khối lệnh n+1 mà
chúng ta gõ ở mục default
Lưu ý: Sau mỗi case cần phải có
lệnh break để nó ko cần phải thực
hiện tiếp nếu case đã nhận giá trị
đúng.
7. Ví dụ về switch case
<?php
$a=4;
switch ($a)
{
case 1:
echo “Bạn là thí sinh khu vực 1”;
break;
case 2:
echo “Bạn là thí sinh khu vực 2”;
break;
case 3:
echo “Bạn là thí sinh khu vực 3”;
break;
default: echo “Bạn đã nhập dữ liệu ko đúng, hãy nhập lại”;
}
?>
8. Khi nào dùng switch case để thay if
Những giá trị chúng ta điền sau chữ case phải là một giá trị
cụ thể (có thể là số, có thể là chuỗi ký tự) chứ không phải là
một biểu thức so sánh hay biểu thức tính toán.
Switch case được dùng thay thế cho if trong trường hợp nếu
ta có thể chỉ rõ biến có thể nhận một trong những giá trị nào
(phép toán =).
switch ($tên biến)
{
case giá trị 1:
khối lệnh 1;
break;
case giá trị 2:
khối lệnh 2;
break;
…
}
Khi có nhiều giả định, việc thay thế
if bằng switch case khiến câu
lệnh dễ nhìn hơn.
9. 11. Các loại vòng lặp trong PHP
Vòng lặp được sử dụng để thực thi một đoạn code lặp đi lặp
lại nhiều lần cho đến khi thỏa mãn một điều kiện nào đó. Trong
PHP chúng ta có 3 loại vòng lặp sau:
Vòng lặp for: Lặp một hành động với số lần lặp nhất định.
Vòng lặp while: Lặp một hành động dựa theo một điều kiện cụ
thể mà nó trả về là true
Vòng lặp do...while: Lặp một hành động với số lần lặp nhất
định
10. Vòng lặp for
Trong đó:
$biến: Là một câu lệnh gán giá trị ban đầu cho biến điều
khiển hoặc là một biến có giá trị sẵn.
Điều kiện: Đây là một biểu thức so sánh, nó xác định điều
kiện thoát ra khỏi vòng lặp for.
$biểu_thức_thay_đổi_biến: Xác định biến điều khiển sẽ bị
thay đổi như thế nào sau mỗi lần vòng lặp được lặp lại.
for ($biến; điều_kiện; $biểu_thức_thay_đổi_biến)
{
Các câu lệnh;
}
for ($a=0; $a<5; $a++)
{
echo $a;
}
$a=0;
for ($a; $a<5; $a++)
{
echo $a;
}
11. Ví dụ về for
<?php
for ($a=2; $a<8; $a++)
{
echo “Hôm nay là thứ: ” . $a;
}
?>
12. Vòng lặp for lồng nhau
Nói một cách đơn giản: Một vòng lặp cha sẽ bao một vòng lặp
con bên trong nó. Mỗi lần lặp cho vòng lặp cha, thì vòng lặp
con phải lặp hết điều kiện lặp của nó
Tức là nó thực hiện hết tất cả nội dung dòng lệnh bên trong
vòng lặp rồi mới thực hiện vòng kế tiếp.
for ($i=1; $i<=3; $i++)
{
echo “Đây là hàng thứ: $i” . “<br/>”;
for ($j=1; $j<=5; $i++)
{
echo “Đây là phần tử thứ: $j”. “thuộc hàng: $i”. “<br/>”;
}
}
13. Vòng lặp while
while (điều_kiện)
{
Các câu lệnh;
}
$a=1;
while ($a<=5;)
{
echo $a++;
}
Vòng lặp while cũng dùng để lặp lại dữ liệu, nó được dùng khi
chúng ta chưa biết chính xác số vòng lặp.
Điều_kiện: Là điều kiện của vòng lặp. Khi điều_kiện vẫn còn
đúng thì vòng lặp tiếp tục chạy, khi điều_kiện sai thì vòng lặp
sẽ dừng.
14. Vòng lặp do while
do {
Các câu lệnh;
} while (điều_kiện);
$a=1;
do {
echo $a++;
} while ($a<=5);
Vòng lặp do while cũng tương tự như vòng lặp while, nhưng
câu lệnh nằm ở trong do while được thực hiện ít nhất một lần.
Điểm khác biệt duy nhất giữa do white với while (hoặc là for)
đó là nó thực hiện câu lệnh trước rồi mới kiểm tra điều kiện.
Điều_kiện: Là điều kiện của vòng lặp. Khi điều_kiện vẫn còn
đúng thì vòng lặp tiếp tục chạy, khi điều_kiện sai thì vòng lặp
sẽ dừng.
Lưu ý: Không được quên dấu ; ở phía sau điều_kiện
15. Khi nào dùng for, while, do while
Khi biết rõ số lần cần lặp chúng ta dùng for.
Khi chưa biết chính xác số lần lặp chúng ta dùng while.
Khi chưa biết chính xác số lần lặp nhưng vẫn muốn câu lệnh
được thực thi một lần chúng ta dùng do while.
16. 12. Các câu lệnh break, continue, goto, die, và exit trong PHP
a. Câu lệnh break
Câu lệnh break: được dùng để thoát khỏi vòng lặp chứa nó
một cách đột ngột mặc dù vòng lặp vẫn chưa kết thúc.
Câu lệnh break thường dùng trong các câu lệnh điều kiện như
switch case với mục đích thoát ra khỏi câu điều kiện đó.
break còn có thể áp dụng cho tất cả các loại vòng lặp (for,
while, do while, foreach) với mục đích thoát ra khỏi vòng lặp.
$a=4;
switch ($a) {
case 1:
echo “Bạn là thí sinh khu vực 1”;
break;
case 2:
echo “Bạn là thí sinh khu vực 2”;
break;
case 3:
echo “Bạn là thí sinh khu vực 3”;
break;
default: echo “Bạn đã nhập dữ liệu ko đúng, hãy nhập lại”; }
17. Dùng break để thoát khỏi vòng lặp for
for ($i=1; $i<100; $i++)
{
echo $i;
if ($i>=18)
{
break;
}
}
Trong ví dụ này vòng lặp sẽ không chạy hết 100 lần, bởi vì khi
nó chạy tới lần thứ 18, thì câu lệnh if là đúng nên lệnh break
trong if sẽ dừng vòng lặp.
Không chỉ vòng lặp for mà các vòng lặp (while, do while,
foreach) đều có thể dùng lệnh break để kết thúc.
18. b. Câu lệnh continue
for ($i=1; $i<100; $i++)
{
if ($i>=18)
{
continue;
}
echo $i;
}
Lệnh continue sẽ bỏ qua những đoạn code bên dưới nó và
tiếp tục nhảy tới vòng lặp kế tiếp.
Ở ví dụ này lệnh continue sẽ thực hiện 81 lần
Lệnh continue còn có thể áp dụng cho tất cả các loại vòng lặp
(for, while, do while, foreach) với mục đích bỏ qua các câu
lệnh phía dưới và tiếp tục nhảy đến các vòng lặp kế tiếp.
19. c. Câu lệnh goto
$a=15;
$b=7;
$c=$a+$b;
echo $a;
goto label_end;
echo $b;
label_end;
Lệnh goto dùng để nhảy đến một dòng code nào đó.
Bình thường nó sẽ xuất ra màn hình biến a và biến b.
Nhưng vì có câu lệnh goto cho nên nó chỉ xuất ra màn hình giá
trị của biến a.
20. d. Hàm die() và exit()
<?php
echo “Nguyễn Văn A”;
die ();
echo “Trần Văn B”;
?>
Lệnh break và continue chỉ ảnh hưởng trong vòng lặp, còn
hàm die và exit lại ảnh hưởng đến toàn bộ chương trình. Khi
gặp câu lệnh này thì chương trình sẽ dừng ngay, và những
đoạn code bên dưới die hoặc exit sẽ không được thực hiện.
Hàm die và hàm exit có chức năng tương tự nhau.
Ta có thể thực hiện hàm die hay exit dưới những dạng sau:
+ die
+ die()
+ die(string): Chuỗi string này sẽ được hiển thị ra màn hình.
<?php
echo “Nguyễn Văn A”;
exit ();
echo “Trần Văn B”;
?>
21. 13. Hàm trong PHP
Hàm (function) là một khối các câu lệnh (những đoạn code)
nhằm giải quyết một vấn đề nào đó.
Hàm bao gồm: Hàm có sẵn của PHP và Hàm tự xây dựng.
Trong đó:
ten_ham: là tên của hàm, ko phân biệt chữ HOA hay thường.
Hàm có thể Có hoặc Không có đối số.
+ Đối số: là những giá trị mà chúng ta truyền cho Hàm để hàm
có thể thực thi được những dòng code chứa trong nó.
+ Các đối số được nhập sau tên hàm và nằm phía trong dấu ()
Cú pháp
function ten_ham () {
// Khối lệnh mà bạn muốn thực thi
}
Hàm sẽ không tự động thực thi, nó chỉ được thực thi khi bạn
gọi tên nó ra và truyền vào nó các đối số.
22. Phân loại hàm:
Hàm không có đối số
Thông thường hàm không có đối số là loại hàm khi được thực
thi sẽ luôn cho ra cùng một kết quả.
Tuy nhiên không phải lúc nào cũng vậy.
Cách khai báo và gọi một hàm không có đối số
Cú pháp
function ten_ham () {
// Khối lệnh mà bạn muốn thực thi
}
<?php
function chao_mung () {
echo “<p> Hôm nay là một ngày đẹp trời, say Hello </p>”;
}
chao_mung();
chao_mung();
?>
23. Hàm không có đối số (ví dụ tiếp)
<?php
function nhac_nho () {
$a = date ();
if (day($a)%2<>0)
echo “Hôm nay là ngày lẻ, bạn chỉ được đi xe biển lẻ”;
else
echo “Hôm nay là ngày chẵn, bạn được đi xe biển chẵn”;
}
nhac_nho ();
?>
<?php
function number_lucky () {
$a = rand ();
echo “Đây là con số may mắn của bạn $a”;
}
number_lucky ();
?>
24. Hàm có tham số
Hàm có tham số là loại hàm khi được thực thi ta phải truyền
các đối số cho nó. Tùy vào giá trị được truyền thì hàm sẽ cho
ta các kết quả khác nhau.
Cú pháp
function ten_ham ($var1, $var2,…) {
// Khối lệnh mà bạn muốn thực thi
}
<?php
function phep_nhan ($v1, $v2) {
$mul = $v1*$v2;
echo “Kết quả của phép nhân 2 số là: $mul”;
}
$a=5;
$b=6;
phep_nhan($a, $b);
?>
25. Hàm có tham số - Tạo hàm trả về có giá trị
Để tạo một hàm trả về một giá trị, chúng ta sử dụng cậu lệnh
return. Câu lệnh return phải là câu lệnh cuối cùng trong hàm.
Nếu phía sau return còn các câu lệnh khác thì các câu đó
không được thực thi.
Cú pháp
function ten_ham ($var1, $var2,…) {
// Khối lệnh mà bạn muốn thực thi
return $var;
}
<?php
function phep_cong ($v1, $v2) {
$sub = $v1 + $v2;
return $sub;
}
$a=5; $b=6; $c=7;
$d = $c * phep_cong ($a, $b);
?>
26. Tham số thực và tham số hình thức
Các biến ta định nghĩa trong hàm được gọi là tham số hình
thức.
Còn biến mà ta truyền vào được gọi là tham số thực.
<?php
function phep_nhan ($v1, $v2) {
$mul = $v1*$v2;
echo “Kết quả của phép nhân 2 số là: $mul”;
}
$a=5;
$b=6;
phep_nhan($a, $b);
?>
Ở đây $v1, $v2 được gọi là tham số hình thức.
Còn $a, $b được gọi là tham số thực.
27. Các cách truyền tham số cho hàm
Cách 1: Truyền bằng tham trị:
Mặc định khi ta truyền đối số cho hàm thì đó đều là truyền theo
giá trị (tham trị).
Điều này có nghĩa là khi ta truyền xong rồi, nếu gọi hàm ra để
thực thi thì các tham số thực không bị thay đổi.
<?php
function phep_them ($v1, $v2) {
$v1 = $v2 + 1;
echo “Kết quả của phép thêm giá trị là: $v1”;
}
$a=5;
$b=6;
phep_them ($a, $b);
echo $a;
?>
28. Cách 2: Truyền bằng tham chiếu:
Có đôi khi chúng ta muốn các biến bị truyền vào bị thay đổi khi
chúng ta gọi hàm ra thực thi, lúc đó bạn nên truyền theo dạng
tham chiếu.
Để chuyển từ tham trị sang tham chiếu bạn thêm dấu & trước
đối số ở trong phần khai báo hàm. Ví dụ
<?php
function phep_them (&$v1, $v2) {
$v1 = $v2 + 1;
echo “Kết quả của phép thêm giá trị là: $v1”;
}
$a=5;
$b=6;
phep_them ($a, $b);
echo $a;
?>