TL; DR Rób to, co najlepiej czyta w danych okolicznościach
Weźmy ten przykład:
for ( int i = 1; i < array.length; i++ )
{
if(something) break;
// perform operations
}
W tym przypadku nie chcemy, aby jakikolwiek kod w pętli for był wykonywany, jeśli somethingjest prawdziwy, więc przeniesienie testu somethingdo pola warunku jest rozsądne.
for ( int i = 1; i < array.length && !something; i++ )
Z drugiej strony, w zależności od tego, czy somethingmożna ustawić wartość trueprzed pętlą, ale nie w jej obrębie, może to zapewnić większą przejrzystość:
if(!something)
{
for ( int i = 1; i < array.length; i++ )
{...}
}
Teraz wyobraź sobie:
for ( int i = 1; i < array.length; i++ )
{
// perform operations
if(something) break;
// perform more operations
}
Wysyłamy tam bardzo wyraźną wiadomość. Jeśli stanie somethingsię prawdą podczas przetwarzania tablicy, porzuć w tym momencie całą operację. Aby przenieść czek do pola warunku, musisz:
for ( int i = 1; i < array.length && !something; i++ )
{
// perform operations
if(!something)
{
// perform more operations
}
}
Prawdopodobnie „wiadomość” stała się mętna, a my sprawdzamy stan awarii w dwóch miejscach - co, jeśli stan awarii zmieni się i zapomnimy jedno z tych miejsc?
Istnieje oczywiście wiele innych kształtów i warunków dla pętli for, wszystkie z własnymi niuansami.
Napisz kod, aby dobrze czytał (jest to oczywiście nieco subiektywne) i zwięźle. Poza drakońskim zbiorem wytycznych dotyczących kodowania wszystkie „reguły” mają wyjątki. Pisz, co czujesz, najlepiej wyraża podejmowanie decyzji i minimalizuj szanse na przyszłe błędy.
conditionw szczególności.