TL; DR Робіть все, що читається найкраще у ваших конкретних обставинах
Візьмемо цей приклад:
for ( int i = 1; i < array.length; i++ )
{
if(something) break;
// perform operations
}
У цьому випадку ми не хочемо, щоб якийсь код у циклі for виконувався, якщо something
це правда, тому переміщення тесту something
в поле умови є розумним.
for ( int i = 1; i < array.length && !something; i++ )
Потім знову, залежно від того, чи something
можна встановити true
перед циклом, але не всередині нього, це може запропонувати більше ясності:
if(!something)
{
for ( int i = 1; i < array.length; i++ )
{...}
}
А тепер уявіть це:
for ( int i = 1; i < array.length; i++ )
{
// perform operations
if(something) break;
// perform more operations
}
Ми надсилаємо туди дуже чітке повідомлення. Якщо something
під час обробки масиву стає істинним, тоді відмовтеся від усієї операції. Для того, щоб перенести чек у поле стану, вам потрібно виконати:
for ( int i = 1; i < array.length && !something; i++ )
{
// perform operations
if(!something)
{
// perform more operations
}
}
Можливо, "повідомлення" затуманилося, і ми перевіряємо стан відмови в двох місцях - що робити, якщо умова відмови зміниться, і ми забудемо одне з цих місць?
Звичайно, може бути набагато більше різноманітних форм, які можуть бути петельними та умовами, всі зі своїми нюансами.
Запишіть код так, щоб він добре читався (це, очевидно, дещо суб’єктивно) та стисло. Поза драконівським набором правил кодування всі "правила" мають винятки. Напишіть те, що вам здається, виражає рішення, яке найкраще приймає рішення, і мінімізуйте шанси на майбутні помилки.
condition
саме.