Không hiểu đoạn code tìm vị trí số chẳn đầu tiên trong mảng một chiều?
Bài tập: Tìm vị trí chắn đầu tiên trong mảng 1 chiều các số nguyên, ko có thì trả về -1
http://codepad.org/ujppAi9b
Code:
[quote] int timvitrichandau(int a[], int n)
{
for(int i = 0; i < n; i++)
{
if(a[i] % 2 == 0)
{
return i;
}
}
return -1;
}
[/quote]
Thắc mắc: Giả sử mảng nt này
1 | 3| 5 |7 | 2 |4
theo đoạn code chạy thì vị trí a[0] a[1] a[2] a[3] đều trả về -1 nhưng đề a[4] thì trả về i=4 thì kết quả cuối cùng là i=4. Thắc mắc của mình là nếu chạy tiếp thì nó cũng trả về i=5 nhưng tại sao chtr chạy vẫn đúng ạ? Em nghĩ phải có break; chỗ lệnh if chứ. Mặc dù thấy thắc mắc hơi ngớ ngẩn nhưng mong được giải đáp
Tks <3
Lệnh return sẽ thoát khỏi hàm nên ko cần break nữa
Khi bạn dùng return trong hàm thì hàm sẽ được kết thúc ngay tại đó
Vì vậy mình không cần phải break nữa,
Nếu bạn cần xử lý thêm code ở sau thì có thể dùng break thay cho return
Break để thoát khỏi for.
return để thoát khỏi hàm.
Bạn nên tìm hiểu lại về break, continue, return