is_реклам:

пошук, категорії та ін. показати ▼

{ Складені оператори } та прості if ‘ и

{ Складені оператори } та прості if ‘ и
автор опубліковано


Наведемо ще кілька правил гарного форматування коду:

Умовні оператори виділяються абзацними відступами

Це потрібно робити навіть в операторах, які складаються з одного рядка:

if ( by_land )
	one();
else
	two();

а не так:

if ( by_land ) one(); else two();

Очевидним виключенням є:

if ( by_land)
{
	one();
}
else if ( by_sea )
{
	two();
}
else if ( by_air )
{
	three();
}

Фігурні дужки тут треба використовувати по двом причинам. По-перше, певним чином можна потрапити всередину умовного оператору при відладці і забути вставити дужки, як в наступному прикладі коду:

if ( by_land )
	one();			if (debug) printf("Ox...");
else if ( by_sea )

що призведе фактично до:

if ( by_land )
	one();

if (debug)
	printf("Ox...");
else
	if ( by_sea )

З дужками програма до того ж краще читається. Часто можна порушувати правило абзацних відступів, коли Ви хочете використати форматування для того, щоб показати з кришталевою ясністю, що відбувається. Акуратні стовпці роблять це реальним:

if         ( by_land   )        one();
else if    ( by_sea    )        two();
else if    ( by_tunnel )        three();

але це - нечитабельно:

if (by_land) one();
else if (by_sea) two();
else if (by_tunnel) three();

Подібний код нікуди не годиться:

for ( a ; b ; c );
while ( ++i < 10);

Надто просто випадково зробити наступне:

while ( i < 10 );
	++i;

Іншими словами, "вічно порівнювати і з 10, потім збільшити і". Тому старайтеся не використовувати порожнього оператора - крапку з комою вкінці рядка, який починається на for чи while - бо дуже легко про неї забути. Компілятор помилку не дасть, але програма буде працювати невірно.

Вирівнюйте дужки ветикально по лівій межі

Іноді пошук відсутньої фігурної дужки перетворюється в величезну проблему. Якщо Ви винесете дужки туди, де їх добре видно, то їхня відсутність буде одразу ж помітною:

while ( some_condition )
{
	// внутрішній блок
}

Багато програмістів насправді не люблять так званий стиль Кернігана і Річі:

if ( condition ){
	code();
}else{
	more_code();
}

Тут не тільки важко перевірити дужки на парність, але і відсутність візуального розділення за рахунок рядків, які містять лише відкриті дужки, веде до погіршення читабельності.

Використовуйте фігурні дужки, якщо в умовному операторі є більше, ніж один рядок

Звичайно, це знають всі, але це правило використовується, навіть тоді, коли додатковими рядками є текст коментаря. Проблема полягає в тому, що надто легко випадково добавити інший оператор і забути добавити дужки. Текст, подібний нищеописаному, більш надійний:

if ( something() )
{
	/* До яких ще пір ти, Каталіна, будеш використовувати наше терпіння...
	*/
	something_else();
}
схоже за тегами

Залишити коментар:

Яндекс цитирования UA TOP Bloggers