30/09/2018, 21:42

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

Ngô Doãn Tuấn viết 23:52 ngày 30/09/2018

Em nghĩ phải có break;

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

Anh Pham viết 23:58 ngày 30/09/2018

Em nghĩ phải có break; chỗ lệnh if chứ

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

Bài liên quan
0