Bài 02: Bài tập vòng lặp for trong Javascript

Vòng lặp for đóng vai trò quan trọng khi lập trình với Javascript nên việc nắm vững nó là điều bắt buộc, vì vậy mình sẽ ra một số bài tập liên quan tới vòng lặp và giải sẵn cho các bạn tham khảo. Nhưng trước khi tham khảo bài giải bạn hãy tự giải cho mình nhé bằng cách XEM DEMO và đăng nhập vào hệ thống hỏi đáp online để đăng bài giải. Nếu bạn có cách giải khác hay hơn thì hãy góp ý ở trang hỏi đáp luôn nhé.

Trong các ví dụ dưới đây có sử dụng các kiến thức như sau:

1. Bài tập vòng lặp for trong javascript có lời giải

Sau đây là danh sách các bài tập.

Bài 01: Xây dựng chương trình có một ô Input, một button. Khi click vào button thì in các số từ 1 tới giá trị của ô input

XEM DEMO

HTML:

<form method="get" action="">
    Nhập số: <input type="text" id="number" value="0"/>
    <input type="button" value="In kết quả" onclick="print_number()"/>
</form>
<div id="result">

</div>

Trong đó:

  • div#result dùng để hiển thị kết quả.
  • input#number là số người dùng nhập vào.
  • Khi click vào button thì gọi đến hàm print_number().

Bây giờ cần xây dụng hàm print_number().

Javascript:

function print_number()
{
    // Lấy number
    var number = document.getElementById("number").value;

    // Ép number sang kiểu INT
    number = parseInt(number);

    // Lặp để in kết quả
    var html = '';
    for (var i = 1; i <= number; i++){
        html += i + ' <br/>';
    }
    document.getElementById("result").innerHTML = html;
}

Bài 02: Viết chương trình có một ô input, một button. Khi click vào button thì in ra các số nguyên tố từ 1 tới giá trị của ô input

Với bài này ta phải vận dụng hàm kiểm tra số nguyên tố nên bạn quay lại bài đó và xem nhé.

XEM DEMO

HTML: phần này tương tự như ví dụ 1 nên mình không giải thích gì thêm

<form method="get" action="">
    Nhập số: <input type="text" id="number" value="0"/>
    <input type="button" value="In kết quả" onclick="print_snt()"/>
</form>
<div id="result">

</div>

Javascript:

// hàm kiểm tra số nguyên tố
function kiem_tra_snt(n)
{
    // Biến cờ hiệu
    var flag = true;

    // Nếu n bé hơn 2 tức là không phải số nguyên tố
    if (n < 2) {
        flag = false;
    }
    else if (n == 2) {
        flag = true;
    }
    else if (n % 2 == 0) {
        flag = false;
    }
    else {
        // lặp từ 3 tới n-1 với bước nhảy là 2 (i+=2)
        for (var i = 3; i < Math.sqrt(n); i += 2)
        {
            if (n % i == 0) {
                flag = false;
                break;
            }
        }
    }

    return flag;
}

// Hàm in ra các số nguyên tố từ 1 tới n
function print_snt()
{
    // Lấy number
    var number = document.getElementById("number").value;

    // Ép number sang kiểu INT
    number = parseInt(number);

    // Lặp để in kết quả
    var html = '';
    for (var i = 1; i <= number; i++) {
        // Nếu là số nguyên tố thì in ra
        if (kiem_tra_snt(i)){
            html += i + ' <br/>';
        }
    }
    document.getElementById("result").innerHTML = html;
}

Bài 03: Cho 10 thẻ div, hãy viết chương trình khi click vào button thì sẽ đổi màu cho các thẻ div. Nếu div nào vị trí chẵn thì background màu đỏ và lẽ thì background màu xanh.

Đối với bài này chúng ta sẽ lấy danh sách các thẻ div, sau đó sử dụng vòng lặp for để kiểm tra, nếu thẻ nào nằm vị trí chẵn thì đổi thành màu đỏ và vị trí lẽ đổi thành màu xanh.

Vì kết quả trả về sẽ là một mảng bắt đầu bằng 0 nên khi kiểm tra chẵn lẽ ta phải cộng thêm một nữa:

  • (i+1) % 2 == 0 là số chẵn
  • (i+1) % 2 != 0 là số lẻ

XEM DEMO

HTML:

<div>Thẻ thứ 1</div>
<div>Thẻ thứ 1</div>
<div>Thẻ thứ 1</div>
<div>Thẻ thứ 1</div>
<div>Thẻ thứ 1</div>
<div>Thẻ thứ 1</div>
<div>Thẻ thứ 1</div>
<div>Thẻ thứ 1</div>
<div>Thẻ thứ 1</div>
<div>Thẻ thứ 1</div>
<button onclick="change_backgroud()">Change background</button>

CSS: tạo chút CSS cho dễ nhìn

<style type="text/css">
    div {
        padding: 10px;
        margin: 5px;
    }
</style>

Javascript:

function change_backgroud()
{
    var divs = document.getElementsByTagName("div");
    for (var i = 0; i < divs.length; i++){
        // Vị trí chẵn => màu đỏ
        if ((i + 1) % 2 == 0){
            divs[i].style.background = "red";
        }
        else { // Vị trí lẽ => màu xanh
            divs[i].style.background = "blue";
        }
    }
}

2. Lời kết

Qua 3 bài tập về vòng lặp for trong javascript chắc bạn đã nắm vững được cách sử dụng vòng lặp for để giải các bài tập liên quan rồi nhỉ. Khi làm project thì sẽ gặp nhiều tình huống phức tạp và cần bạn xử lý lắc léo chứ không cứng nhắc như các ví dụ đó nên bạn đừng chủ quan, nhưng dù sao nếu hiểu được cả ba bài tập đó coi như bạn OK rồi đấy.

Hãy để lại link bài viết gốc khi chia sẻ bài viết này, mình sẽ report DMCA với những website lấy nội dung mà không để nguồn hoặc copy bài với số lượng lớn.

Nguồn: freetuts.net

Profile photo of adminTheHalfHeart

TheHalfHeart

Có sở thích viết tuts nên đã từng tham gia viết ở một số diễn đàn, đến năm 2014 mới có điều kiện sáng lập ra freetuts.net. Sinh năm 90 và có 1 vợ 2 con, thích ca hát và lập trình.

ĐĂNG BÌNH LUẬN: Đăng câu hỏi trên Facebook để được hỗ trợ nhanh nhất.