STDIO
Tìm kiếm gần đây
    • Nội dung
    • QR Code
    • 0
    • Bình luận
    • Sao chép

    Loop - For Và Foreach - While Và Do-While

    Tìm hiểu về các cấu trúc vòng lặp for, foreach, while, do - while trong PHP.
    28/08/2015
    09/09/2020
    3 phút đọc
    Loop - For Và Foreach - While Và Do-While

    Loop là gì?

    Vòng lặp còn được gọi là loop, vòng lặp sẽ giúp rút ngắn thời gian đáng kể cho việc lặp lại nhiều lần một thao tác nào đó.

    Muốn xuất ra một dãy số từ 1 đến 5 như ví dụ dưới đây.

    echo 1;
    echo 2;
    echo 3;
    echo 4;
    echo 5;

    Trong trường hợp này với chỉ 5 số nhưng nếu ta muốn in 100 số thì cách làm như trên sẽ tiêu tốn nhiều thời gian. Vì vậy sẽ dùng vòng lặp để thể hiện dãy số trên.

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

    Hai cách khác nhau nhưng cho ra cùng một kết quả như nhau, số lượng dòng code sẽ được rút ngắn đáng kể.

    For và Foreach

    For

    for($i = 1; $i <= 5; $i++)
    {
    	// các công việc được lặp lại 5 lần
    }

    Vòng lặp này sẽ bắt đầu với từ khóa for và theo sau đó là là cặp dấu ngoặc đơn (), trong cặp dấu này sẽ có 3 phần tử và cách nhau bởi dấu chấm phẩy ;. Trong ví dụ trên vòng lặp này sẽ bắt đầu từ số $i = 1 cho đến số $i <= 5 và bước nhảy sẽ là 1 $i++ ⇔ $i = $i + 1. Và tất cả những dòng code được đặt trong dấu {} sẽ được lặp lại 5 lần.

    Cũng có thể thay đổi bước nhảy của vòng lặp sao cho phù hợp. Ví dụ muốn in ra các số  chẵn chục từ 10 đến 100, thay vì sử dụng $i++ ta sẽ dùng $i = $i + 10.

    for($i = 10; $i <= 100; $i=$i+10)
    {
    	echo $i." "; //10 20 30 40 50 60 70 80 90 100
    }

    Foreach

    Vòng lặp này cho phép ta duyệt qua tất cả các phần tử của mảng.

    $numbers = array(1, 2, 3, 4, 5);
    
    foreach($numbers as $number)
    {
    	echo $number; //12345
    }

    Vòng lặp này sẽ có bước nhảy là từ phần tử này đến phần tử tiếp theo trong mảng cho đến hết. Số vòng lặp và những dòng code trong cặp dấu {} cũng có số lần lặp lại bằng với số lượng phần tử trong mảng.

    While và Do-While

    While

    Chức năng của vòng lặp while tương đương vòng lặp for, nhưng thay vì for có 3 vế bao gồm cho phép khởi tạo các giá trị đầu tiên trước khi vào vòng lặp, vế thứ 2 là biểu thức so sánh, vế thứ 3 là sau khi kết thúc 1 lượt lặp thì sẽ cho phép thực hiện vài phép tính đơn giản, còn while thì chỉ có biểu thức so sánh, các tính năng khác phải tự triển khai.

    $flag = true;
    
    while($flag)
    {
    	echo "infinity";
    }

    Trong ví dụ trên vòng lặp while không có điều kiện dừng vì vậy vòng lặp này là vô tận. Trong vòng lặp while không cần phải cho trước điều kiện dừng, điều kiện dừng có thể sinh ra trong quá trình thực hiện vòng lặp.

    $i = 0;
    $flag = true;
    
    while($flag == true)
    {
    	echo $i." "; //0 1 2 3 4 5 6 7 8 9 10 
    	if($i == 10)
    	{
    		$flag = false;
    	}
    	$i++;
    }

    Trong ví dụ này vòng điều kiện dừng được sinh ra là khi biến $i tiến đến 10.

    Do–While

    Điều khác nhau giữa vòng lặp whiledo-while là vòng lặp while sẽ kiếm tra giá trị trước khi vào vòng lặp còn do-while sẽ thực hiện lần lặp đầu tiên sau đó mới kiểm tra điều kiện. Cùng xem 2 ví dụ sau đây:

    // 1. while
    $i = 0;
    while($i < 0)
    {
    	echo $i; // không hiện ra giá trị
    }
    
    
    // 2. do-while
    $i = 0;
    do{
    	echo $i; // 0
    } while($i < 0);

    Đoạn code 1, thực hiện hiện phép so sánh ngay, và không thỏa nên không tiến hành thực hiện block code. Còn đoạn code 2, sẽ thực thi lần đầu trước, rồi mới tiến hành so sánh.

    PHP

    Phù hợp cho bạn

    Đề xuất

    STML5 CF - Game Loop

    STML5 CF - Game Loop

    Một khi đã đặt chân vào lĩnh vực phát triển game, bạn chắc chắn sẽ gặp ...

    JavaScriptNâng cao

    27/08/2015

    Tín Hiệu Số Và Tương Tự - Analog/Digital

    Tín Hiệu Số Và Tương Tự - Analog/Digital

    Trong ngành điện tử nói chung và trong lập trình vi điểu khiển nói ...

    Điện Tử Ứng DụngKiến thức & linh kiện

    22/06/2016

    Khám phá thêm

    Vòng Lặp foreach Trong PHP

    Vòng Lặp foreach Trong PHP

    Tìm hiểu về cấu trúc vòng lặp foreach trong PHP.

    PHPCheat Sheet

    06/11/2016

    Tìm Hiểu về Game Loop - Vòng Lặp Game

    Tìm Hiểu về Game Loop - Vòng Lặp Game

    Game loop là 1 vòng lắp được lặp đi lặp lại liên tục, giữ cho game vận ...

    Lập Trình GameCơ bản

    05/03/2016

    LinQ – Giới Thiệu và Cách Sử Dụng

    LinQ – Giới Thiệu và Cách Sử Dụng

    Giới thiệu LinQ to SQL, hướng dẫn cài đặt và sử dụng LinQ to SQL.

    Bùi Nguyễn Minh Hoàng

    29/08/2015

    Thông Số Kỹ Thuật Arduino Uno R3 - Các Biến Thể và Lưu Ý

    Thông Số Kỹ Thuật Arduino Uno R3 - Các Biến Thể và Lưu Ý

    Arduino board có rất nhiều phiên bản với hiệu năng và mục đích sử dụng ...

    Điện Tử Ứng DụngArduino

    13/10/2014

    Đo Khoảng Cách Trong Không Gian Với Cảm Biến SRF05 Và Arduino

    Đo Khoảng Cách Trong Không Gian Với Cảm Biến SRF05 Và Arduino

    Hướng dẫn sử dụng cảm biến sóng siêu âm SRF05 để đo khoảng cách từ vật ...

    Điện Tử Ứng DụngArduino

    29/09/2014

    GPU - Double Buffer và 1 Số Khái Niệm

    GPU - Double Buffer và 1 Số Khái Niệm

    Giải thích các khái niệm double buffer, front buffer, back buffer, ...

    Lập Trình GameNâng cao

    16/09/2014

    Khởi Tạo Môi Trường Lập Trình Đồ Họa OpenGL Trên Windows với GLEW và GLFW3

    Khởi Tạo Môi Trường Lập Trình Đồ Họa OpenGL Trên Windows với GLEW và GLFW3

    Hướng dẫn khởi tạo môi trường đồ họa với OpenGL, GLEW và GLFW3.

    Vũ Quang Huy

    28/09/2014

    Tối Ưu Xử Lý Chuỗi với StringBuilder - Phần 1

    Tối Ưu Xử Lý Chuỗi với StringBuilder - Phần 1

    Bài viết giới thiệu và phân tích hiệu năng khi xử lí chuỗi với đối tượng ...

    JavaNâng Cao

    03/02/2018

    STDIO
    Trang chính
    Công ty TNHH STDIO

    30, Trịnh Đình Thảo, Hòa Thạnh, Tân Phú, Hồ Chí Minh
    +84 28.36205514 - +84 942.111912
    developer@stdio.vn

    383/1 Quang Trung, Phường 10, Quận Gò Vấp, Hồ Chí Minh
    Số giấy phép ĐKKD: 0311563559 do sở Kế hoạch và Đầu Tư TPHCM cấp ngày 23/02/2012

    ©STDIO, 2013 - 2020