TỔNG QUAN
CẤU TRÚC ĐIỀU KHIỂN
VÒNG LẶP
CHUỖI VÀ MẢNG
COLLECTIONS
THƯ VIỆN QUAN TRỌNG
HƯỚNG ĐỐI TƯỢNG
XỬ LÝ LUỒNG
EXCEPTION
LÀM VIỆC VỚI FILE
THAM KHẢO
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Vòng lặp for trong Java

Trong bài này, tôi sẽ hướng dẫn các bạn tìm hiểu về cấu trúc của vòng lặp cuối cùng đó là vòng lặp for. Khác với 2 vòng lặp while và do - while (lặp với số lần chưa xác định trước) thì vòng lặp for là một cấu trúc lặp có số lần lặp được xác định trước. Sau đây chúng ta sẽ đi vào tìm hiểu về cấu trúc lặp này.

1. Cú pháp, cách hoạt động và công dụng vòng lặp for

Công dụng

Vòng lặp for là cấu trúc điều khiển lặp được dùng để thực hiện một lệnh hay một khối lệnh với số lần lặp được xác định trước. Vì vậy, cấu trúc lặp này rất mạnh và có thể sử dụng rất linh động trong nhiều tình huống khi viết chương trình.

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Cú pháp

for ([biểu_thức_1]; [biểu_thức_2]; [biểu_thức_3]) {
	// Các lệnh
}
// Lệnh kế tiếp
trong đó:

  • biểu_thức_1 là biểu thức tính ra giá trị khởi đầu cho biến của for.
  • biểu_thức_2 là biểu thức tính ra giá trị điều kiện lặp của for.
  • biểu_thức_3 là bước nhảy của biến sau mỗi lần lặp.
  • Các lệnh là lệnh thực hiện trong thân của vòng lặp for.

Lưu ý: Các biểu thức có thể vắng mặt trong cấu trúc của vòng lặp for nhưng các dấu chấm phẩy vẫn phải có. Mỗi biểu thức trong cấu trúc for có thể là một hoặc nhiều biểu thức đơn. Nếu trong trường hợp một biểu thức có nhiều biểu thức đơn thì các biểu thức đơn được viết cách nhau bởi dấu phẩy (,) và các biểu thức đơn đó được thực hiện từ trái qua phải.

Cách hoạt động

Lưu đồ hoạt động của vòng lặp for như sau:

vonglapfor png

Quy trình thực hiện trải qua các bước như sau:

Bước 1: Các lệnh ở biểu_thức_1 được thực hiện trước tiên. Trong biểu thức này có thể có nhiều biểu thức đơn và viết ngăn cách nhau bởi dấu phẩy.

Bước 2: Kiểm tra giá trị của biểu_thức_2 (điều kiện lặp). Nếu biểu thức này có giá trị đúng (true) thì chuyển sang Bước 3, ngược lại thì chuyển đến Bước 6.

Bước 3: Lần lượt thực hiện các lệnh trong thân vòng lặp.

Bước 4: Thực hiện các lệnh trong biểu_thức_3. Trong biểu thức này có thể có nhiều biểu thức đơn và viết ngăn cách nhau bởi dấu phẩy.

Bước 5: Quay lại Bước 2.

Bước 6: Thực hiện các lệnh bên ngoài vòng lặp for.

Ví dụ

Ví dụ này sẽ in ra màn hình 5 số nguyên đầu tiên.

public static void main(String[] args) {

		for (int i = 1; i <= 5; i++) {
			System.out.println(i);
		}
	}
Kết quả sau khi biên dịch chương trình:

ketqua inso1den5 PNG

Giải thích hoạt động của chương trình trên.

Bước 1: Khởi tạo biến i = 1 và vì 1 < 5 nên thực hiện câu lệnh bên trong for (hiển thị số 1 ra màn hình).

Bước 2: Tăng i lên 1 đơn vị, lúc này i = 2 < 5 nên hiển thị số 2 ra màn hình.

Bước 3: Tăng i lên 1 đơn vị, lúc này i = 3 < 5 nên hiển thị số 3 ra màn hình

Bước 4: Tăng i lên 1 đơn vị, lúc này i = 4 < 5 nên hiển thị số 4 ra màn hình.

Bước 5: Tăng i lên 1 đơn vị, lúc này i = 5 = 5 nên hiển thị số 5 ra màn hình.

Bước 6: Tăng i lên 1 đơn vị, lúc này i = 6 > 5 nên không thực hiện câu lệnh bên trong for. Chương trình kết thúc.

2. Các dạng thường gặp của vòng lặp for

Dạng 1: Vòng lặp for không có biểu_thức_1biểu_thức_3 (ý nghĩa giống vòng lặp while).

int sum = 0, k = 1;
for (; sum < 100; ) {
	sum += k;
	k++;
}
Dạng 2: Vòng lặp for không có biểu_thức_1.

int sum = 0, k = 1;
for (; sum < 100; k++) {
	sum += k;
}
Dạng 3: Vòng lặp for vắng mặt cả 3 biểu thức, khi đó thân của vòng lặp sẽ được thực hiện liên tục. Lúc đó, trong thân của vòng lặp phải có lệnh để thoát ra ngoài vòng for (chi tiết về phần này tôi sẽ giới thiệu trong bài sau).

for (;;) {
	// các lệnh
	// lưu ý: phải có lệnh để thoát ra ngoài vòng lặp
}

Dạng 4: Vòng lặp for đầy đủ.

int sum = 0, k;
for (k = 1; sum < 100; k++) {
	sum += k;
}

Dạng 5: Vòng lặp for đầy đủ và biểu_thức_1 có 2 biểu thức đơn.

int sum, k;
for (sum = 0, k = 1; sum < 100; k++) {
	sum += k;
}

Dạng 6: Vòng lặp for lồng nhau.

for (int row = 1; row <= 2; row++) {
	for (int col = 1; col <= 2; col++) {
		System.out.println(row + ", " + col);
	}
}

3. Ví dụ vòng lặp for

Vòng lặp for không có biểu_thức_1biểu_thức_3

package vong_lap_for;

public class InCacSoNhoHon3 {

	public static void main(String[] args) {
		int number = 0;
		
		/*
		 * Trong trường hợp biến number còn nhỏ hơn 3
		 * thì in ra giá trị của biến và sau đó tăng lên 1.
		 */
		for (; number <3; ) {
			System.out.println(number);
			number++;
		}
	}

}
Kết quả sau khi biên dịch chương trình:

ketqua vidufordang1 PNG

Vòng lặp for có biểu_thức_1biểu_thức_3 có 2 biểu thức đơn

package vong_lap_do_while;

import java.util.Scanner;

public class HienThiHaiSoKhacNhau {

	public static void main(String[] args) {
		int number1, number2;
		Scanner scanner = new Scanner(System.in);
		
		/*
		 * Khởi tạo biến number1 = 0 và number2 = number1 + 3.
		 * Nếu number2 còn nhỏ hơn 8 thì hiển thị biến number1 và number2
		 * Tăng biến number1 và number2 lên 1 và tiếp tục kiểm tra.
		 */
		for (number1 = 0, number2 = number1 + 3; number2 < 8; number1++, number2++) {
			System.out.println(number1 + ", " + number2);
		}
	}

}
Kết quả sau khi biên dịch chương trình:

ketqua vidufordang5 PNG

Vòng lặp for lồng nhau

package vong_lap_do_while;

import java.util.Scanner;

public class HienThiHaiSoKhacNhau {

	public static void main(String[] args) {
		int number1, number2;
		Scanner scanner = new Scanner(System.in);
		
		// Vòng lặp for bên ngoài thực thi 3 lần với row = 1, 2, 3.
		for (number1 = 1; number1 <= 3; number1++) {
			// Mỗi lần lặp for bên ngoài 
			// thì vòng lặp for trong sẽ thực thi 2 lần với col = 1, 2.
			for (number2 = 1; number2 <= 2; number2++) {
				System.out.println("number1 = " + number1 + ", number2 = " + number2);
			}
		}
	}
}

Kết quả sau khi biên dịch chương trình:

ketqua viduforlongnhau PNG

Giải thích hoạt động của chương trình trên:

Bước 1: Vòng lặp for bên ngoài khởi tạo biến number1 =  1 và vì 1 < 3 nên chuyển sang Bước 2.

Bước 2: Vòng lặp for bên trong khởi tạo biến number2 = 1 và vì 1 < 2 nên sẽ hiển thị dòng number1 = 1, number2 = 1 ra màn hình.

Bước 3: Thực hiện biểu thức number2++, lúc này number2 = 2 và vì 2 = 2 nên sẽ hiển thị dòng number1 = 1, number2 = 2 ra màn hình.

Bước 4: Quay lại vòng lặp for bên ngoài thực hiện biểu thức number1++, lúc này biến number1 = 2 và vì 2 < 3 nên chuyển sang Bước 5.

Bước 5: Vòng lặp for bên trong khởi tạo biến number2 = 1 và vì 1 < 2 nên sẽ hiển thị dòng number1 = 2, number2 = 1 ra màn hình.

Bước 6: Thực hiện biểu thức number2++, lúc này number2 = 2 và vì 2 = 2 nên sẽ hiển thị dòng number1 = 2, number2 = 2 ra màn hình.

Bước 7: Quay lại vòng lặp for bên ngoài thực hiện biểu thức number1++, lúc này biến number1 = 3 và vì 3 = 3 nên chuyển sang Bước 8.

Bước 8: Vòng lặp for bên trong khởi tạo biến number2 = 1 và vì 1 < 2 nên sẽ hiển thị dòng number1 = 3, number2 = 1 ra màn hình.

Bước 9: Thực hiện biểu thức number2++, lúc này number2 = 2 và vì 2 = 2 nên sẽ hiển thị dòng number1 = 3, number2 = 2 ra màn hình.

Bước 10: Quay lại vòng lặp for bên ngoài thực hiện biểu thức number1++, lúc này biến number1 = 4 và vì 4 > 3 nên kết thúc vòng lặp.

4. Lời kết

Đây là bài vòng lặp cuối cùng trong Java - vòng lặp for. Sang bài sau, tôi sẽ giới thiệu đến các bạn các từ khóa break continue dùng để thoát khỏi vòng lặp. Các bạn cố gắng nắm chắc chương này vì đây là một phần kiến thức rất quan trọng được sử dụng trong hầu hết các chương trình Java. Cuối bài này, tôi sẽ đưa ra các bài tập để các bạn luyện tập, các bạn theo dõi nhé!

Câu hỏi thường gặp liên quan:

Cùng chuyên mục:

Khi nào dùng Default Methods trong Java 8

Khi nào dùng Default Methods trong Java 8

Ở 2 bài trước chúng ta đã tìm hiểu 2 tính năng mới của Java…

Cách chuyển chữ hoa thành chữ thường trong Java

Cách chuyển chữ hoa thành chữ thường trong Java

Trong bài viết này chúng ta sẽ tìm hiểu về cách chuyển đổi chữ in…

Bài tập tính tổng các số tự nhiên trong Java

Bài tập tính tổng các số tự nhiên trong Java

Các số dương 1, 2, 3, 4, ... được gọi là các số tự nhiên,…

Cách chuyển chữ thường thành chữ hoa trong Java

Cách chuyển chữ thường thành chữ hoa trong Java

Trong chuỗi có thể vừa có ký tự thường vừa có ký tự hoa, nhưng…

Cách viết hoa ký tự đầu tiên trong Java

Cách viết hoa ký tự đầu tiên trong Java

Để hiểu được bài này, các bạn cần có kiến thức căn bản về Java…

Hướng dẫn chuyển đổi giờ phút giây trong Java

Hướng dẫn chuyển đổi giờ phút giây trong Java

Để hiểu được chương trình, các bạn cần có kiến thức cơ bản về Java.…

Cách lấy thời gian hiện tại trong Java

Cách lấy thời gian hiện tại trong Java

Để hiểu được bài viết này, các bạn cần có kiến thức cơ bản sau…

Cách làm tròn số trong Java

Cách làm tròn số trong Java

Khi thực hiện tính toán, việc kết quả ra một con số thập phân dài…

Cách tìm ma trận chuyển vị trong Java

Cách tìm ma trận chuyển vị trong Java

Quá trình hoán đổi giữa hàng và cột được gọi là chuyển vị của ma…

Cách chuyển ArrayList thành mảng và ngược lại trong Java

Cách chuyển ArrayList thành mảng và ngược lại trong Java

Để hiểu được bài này, các bạn cần có kiến thức cơ bản về mảng…

Cách nối hai mảng trong Java

Cách nối hai mảng trong Java

Mình sẽ thực hiện hai chương trình nối mảng. Chương trình thứ nhất nối hai…

Cách xóa khoảng trắng của chuỗi trong Java

Cách xóa khoảng trắng của chuỗi trong Java

Mình sẽ thực hiện hai chương trình khác nhau để các bạn có thể hiểu…

In ra tam giác bằng ký tự * và số trong Java

In ra tam giác bằng ký tự * và số trong Java

Mình sẽ giới thiệu cách để in ra các tam giác bằng ký tự *…

Tìm số lớn nhất trong mảng Java

Tìm số lớn nhất trong mảng Java

Các bạn cần tìm hiểu về mảng, cách khởi tạo và in mảng trong Java…

Tìm ước của một số nguyên trong Java

Tìm ước của một số nguyên trong Java

Trong bài viết này chúng ta sẽ tìm hiểu cách tìm tất cả các ước…

Cách kiểm tra số hoàn hảo trong Java

Cách kiểm tra số hoàn hảo trong Java

Cách kiểm tra số đối xứng trong Java

Cách kiểm tra số đối xứng trong Java

Trong bài viết này chúng ta sẽ kiểm tra một số có phải là số…

Đảo ngược một số trong Java

Đảo ngược một số trong Java

Mình sẽ giới thiệu các bạn cách đảo ngược một số sử dụng vòng lặp…

Tìm bội chung nhỏ nhất trong Java

Tìm bội chung nhỏ nhất trong Java

Mình sẽ sử dụng hai cách khác nhau để tìm BCNN. Cách thứ nhất mình…

Cách hoán đổi hai số trong Java

Cách hoán đổi hai số trong Java

Trong phần này mình sẽ sử dụng một biến tạm temp() làm biến trung gian…

Top