Một void method là một phương thức không có kiểu dữ liệu trả về.
Trong Hình 1 định nghĩa một phương thức có tên là printGrade và gọi nó để in điểm cho một điểm được đưa vào
Hình 1: Phương thức TestVoidMethod:
“`public class TestVoidMethod {
public static void main(String[] args) {
System.out.println(“The grade is “);
printGrade(70.5);
System.out.println(“The grade is “);
printGrade(59.5);
}
public static void printGrade(double score) {
if (score >= 90.0) {
System.out.println(‘A’);
} else if (score >= 80.0) {
System.out.println(‘B’);
} else if (score >= 70.0) {
System.out.println(‘C’);
} else if (score >= 60.0) {
System.out.println(‘D’);
} else {
System.out.println(‘F’);
}
}
}“`
Phương thức printGrade là một void method bởi nó không trả về bất cứ giá trị nào. Một lời gọi phương thức void phải là một lệnh. Vì vậy, phương thức này được gọi đến như là một lệnh tại dòng 4 trong phương thức main. Giống như bất cứ lệnh nào trong Java, nó được kết thúc bởi dấu chấm phẩy (;)
Để thấy được sự khác biệt giữa một phương thức void và phương thức value-returning, hãy thiết kết lại phương thức printGrade để trả về một giá trị. Phương thức mới được gọi là getGrade trả về loại (A, B, C, D) như trong hình 2.
Hình 2: Phương thức TestReturnGradeMethod
“`public class TestReturnGradeMethod {
public static void main(String[] args) {
System.out.println(“The grade is ” + getGrade(78.5));
System.out.println(“The grade is ” + getGrade(59.5));
}
public static char getGrade(double score) {
if (score >= 90.0) {
return ‘A’;
} else if (score >= 80.0) {
return ‘B’;
} else if (score >= 70.0) {
return ‘C’;
} else if (score >= 60.0) {
return ‘D’;
} else {
return ‘F’;
}
}
}“`
Phương thức getGrade trả về ký tự xếp loại dựa trên số điểm đưa vào. Lời gọi phương thức này được thực hiện tại dòng 3-4.
Phương thức getGrade có thể được gọi ở bất cứ nơi nào. Phương thức printGrade không trả lại bất kỳ giá trị nào, vì vậy nó phải được gọi như một lệnh.
Chú ý
Lệnh return là không cần thiết cho phương thức không có kiểu dữ liệu trả về, nhưng nó có thể được sử dụng để kết thúc sự thực thi của phương thức và quay trở lại nơi đang gọi nó. Cú pháp đơn giản:
return;
Điều này thường không được thực hiện, nhưng đôi khi nó rất hữu ích để phá vỡ luồng kiểm soát bình thường trong phương thức void. Ví dụ, mã sau đây có lệnh return để kết thúc phương thức khi điểm số không hợp lệ.
public static void printGrade(double score) { if (score < 0 || score > 100) { System.out.println("Invalid score"); return; } if (score >= 90.0) { System.out.println('A'); }else if (score >= 80.0) { System.out.println('B'); } else if (score >= 70.0) { System.out.println('C'); }else if (score >= 60.0) { System.out.println('D'); } else { System.out.println('F'); } }