là vì bạn hiểu sai ý nghĩa của break và return thôi
– break: thoát ra khỏi 1 scope nào đó ( for, foreach, while, do while, switch case)
– return: trả về kết quả của 1 hàm
nguyên tắc:
1. khi trong cùng 1 scope: bất cứ câu lệnh nào nằm sau câu lệnh break / return đều không được xử lý ( coi như là vô nghĩa)
2. khi viết 1 hàm có trả về kết quả: hàm phải được trả kết quả về trong bất cứ trường hợp nào ( trả lời cho câu hỏi “tại sao lại như vậy” của bạn: với hàm của bạn ở trên khi câu lệnh break được gọi thì sẽ thoát ra khỏi vòng for, nhưng không gặp câu lệnh return nào nên hàm không trả về được kết quả, báo lỗi), có một số trình biên dịch phát hiện được trường hợp này thì sẽ nhắc nhở mình, nhưng một số lại không có nên bạn phải cẩn thận trường hợp này (đôi khi có lỗi mà không biết tại sao :v)