Lỗi trả về trong phương thức

Mình có code thử Bài tập viết hàm phân loại học lực theo điểm thì bị lỗi ở đoạn: return xepLoai(diem);
Mọi người ai có thể giải thích giúp mình tại sao được ko?
Mình cảm ơn!

Code mình viết:

package Code_Dao;

import java.io.IOException;
import java.util.Scanner;

public class SapXepDiem {

    public static void main(String[] args) throws IOException {
		Scanner scaner = new Scanner(System.in);
		System.out.println("Nhap vao diem hoc sinh");

		double diem = scaner.nextDouble();

		xepLoaiHocLuc(diem);
	}

	public static String xepLoai(double diem) {
		if (diem < 5)
		{
			System.out.println(" Xep loai Kem");
		} else if (5 <= diem && diem < 6.5) {
			System.out.println(" Xep loai Trung binh");
		} else if (7.5 <= diem && diem < 9) {
			System.out.println(" Xep loai Kha");
		} else if(diem >= 9) {
			System.out.println(" Xep loai Gioi");
		}
		else System.out.println("diem ko hop le");
		return xepLoai(diem);
	}

	public static void xepLoaiHocLuc(double diem) {

		String hocLuc = xepLoai(diem);
		System.out.println(hocLuc);
	}
}

Sao lại return chính bản thân nó được nhỉ? Hàm xepLoai của bạn cần tạo một String, rồi trong các khối if thì gán chuỗi cho nó. Rồi mới return nó được chứ?

String kq;
if (diem > 8)
    kq = "Gioi"
...
return kq;

Thêm nữa hàm xepLoai trong đề bài chỉ yêu cầu trả về string là kết quả, chứ không cần bạn xuất ra kết quả trong method. Nên những lệnh print trong method xepLoai là không có nghĩa.

5 Likes

Cảm ơn bạn đã chỉ ra điểm sai. Rõ ràng mình vẫn chưa nắm được cơ bản. Nếu có thể, bạn cho mình vài từ khóa liên quan để mình tìm hiểu sâu hơn được không ?!!
Đây là bài mình sau khi sửa lại:
https://paste.ofcode.org/gK9cFTVAiJtumt6XJucUJT

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?