Hỏi về cách sử dụng vòng lặp một cách hợp lý

Em có đoạn code tìm lớp , có 2 mệnh đề là khi tìm được lớp trả về giá trị true và không tìm được lớp thì xuất ra thông báo và trả về false .Có Cách nào để nó chạy hết vòng lặp for rồi mới thông báo không ạ.( và nếu hàm khác ,em muốn nó chạy hết vòng lặp for để tìm nhiều kết quả nên break không được ạ)
Em có nghĩ đến go stop;
stop:
Nhưng thấy không hợp lý lắm ạ.

int tim_lop( KHOA &khoa ,char s[])
{
	for (int i = 1; i <= khoa.LOP; i++)
	{
		if (strcmp(s, khoa.DSL[i].TenLop)==0)
		{
			return 1;
		
		}
		else
		{
			cout << "khong tim thay lop ban can tim:";
			return 0;
		}
	}
}
for(..)
{
    ...
    if(...)
    {
        ...
        return ...
    }
}
return "khong tim thay...
5 Likes

Không hiểu ý của bạn lắm, không lẽ có tên lớp trùng nhau hay sao mà phải chạy hết for?
bạn khai báo hàm kiểu bool cho nó tiện:

bool timLop(KHOA khoa, char s[])
{
  for(int i = 1; i <= khoa.LOP; i++)
        if (strcmp(s, khoa.DSL[i].TenLop)==0)
           return true;
  return false;
}

khi dùng thì :

if(timLop(khoa,tenlop))
    `Thông báo gì đó`
6 Likes

Trong phần else bạn thêm 1 if là nếu cuối danh sách thì thông báo và return

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