Форум: "Начинающим";
Текущий архив: 2007.09.16;
Скачать: [xml.tar.bz2];
ВнизВ каких случаях как лучше писать? Найти похожие ветки
← →
newbdelphi (2007-08-23 12:18) [0]1.
а).while mytmp <> meconst do
begin
....
....
if TestVar(mytmp div 2 + ...) <> 12 then Break;
....
....
end;
б).while mytmp <> meconst do
begin
....
....
if TestVar(mytmp div 2 + ...) = 12 then
begin
....
....
end else
Break;
end;
2.
а).function test1(var valint: Integer; blocklen: word): Boolean;
begin
Result := False;
if blocklen <> 0 then
begin
Dec(valint, blocklen);
Result := True;
end;
end;
б).function test1(var valint: Integer; blocklen: word): Boolean;
begin
if blocklen <> 0 then
begin
Dec(valint, blocklen);
Result := True;
else
Result := False;
end;
3.
а).....
....
if MyFuncWithBoolResult(tmp1) = False then Exit;
....
....
б).....
....
if MyFuncWithBoolResult(tmp1) then
begin
....
....
end;
Привел несколько примеров, в каких случаях как лучше писать? и вообще существуют ли какие-то правила по применению Exit, где оно лучше и правила применения по другим примерам?
← →
Игорь Шевченко © (2007-08-23 12:20) [1]А смысл-то в чем ?
← →
wp2 © (2007-08-23 12:21) [2]Вообще, все эти exit, Break и т.д. я считаю плохим тоном программирования, так как можно обойтись и без них :-)
Что касается твоих примеров, то могу лишь дать общие советы:
Если есть if then else, то после then надо помещать код, который имеет большую вероятность того, что он выполниться. (это связано с машинным кодом)
← →
wp2 © (2007-08-23 12:25) [3]пункт 2 можно переписать иначе:
function test1(var valint: Integer; blocklen: word): Boolean;
begin
Result := blocklen <> 0;
if Result then Dec(valint, blocklen);
end;
← →
wp2 © (2007-08-23 12:27) [4]>if MyFuncWithBoolResult(tmp1) = False then Exit;
никто "= False" не пишет!!!
Пишут вот так:
if not MyFuncWithBoolResult(tmp1) then Exit;
← →
iXT © (2007-08-23 12:31) [5]> [0] newbdelphi (23.08.07 12:18)
ПисАть надо изходя из задачи! Задачи не озвучены. => ПисАть не надо.
← →
Вася Правильный (2007-08-23 12:45) [6]я пишу как короче не в ущерб пониманию кода
← →
Anatoly Podgoretsky © (2007-08-23 15:02) [7]2а/б вообще не использовать вызов функции
← →
Игорь Шевченко © (2007-08-23 15:14) [8]
> пункт 2 можно переписать иначе:
> function test1(var valint: Integer; blocklen: word): Boolean;
>
> begin
> Result := blocklen <> 0;
> if Result then Dec(valint, blocklen);
> end;
Увижу такой код в проектах - уволю программиста
← →
Riply © (2007-08-23 18:45) [9]> [8] Игорь Шевченко © (23.08.07 15:14)
>> function test1(var valint: Integer; blocklen: word): Boolean;
>> begin
>> Result := blocklen <> 0;
>> if Result then Dec(valint, blocklen);
>> end;
>Увижу такой код в проектах - уволю программиста
Под угрозой увольнения, рискну спросить:
А что такого крамольного в этом коде, что за его "написание"
должны последовать столь суровые меры ? :)
← →
Игорь Шевченко © (2007-08-24 10:58) [10]Riply © (23.08.07 18:45) [9]
> А что такого крамольного в этом коде, что за его "написание"
> должны последовать столь суровые меры ? :)
несоответствие имени фукнции ее поведению.
побочные эффекты от вызова функции.
Без комментариев нельзя понять, что происходит при вызове фукнции.
← →
Ega23 © (2007-08-24 11:11) [11]
> никто "= False" не пишет!!!
Пишут.
C вариантами как-то связано. У Пашки Голубя надо уточнить. Но пример - был.
← →
Riply © (2007-08-24 11:13) [12]> [10] Игорь Шевченко © (24.08.07 10:58)
Спасибо.
P.S.
Это сколько же надо знать и уметь для "выкладывания кода" ? Ж)
← →
Игорь Шевченко © (2007-08-24 11:15) [13]Riply © (24.08.07 11:13) [12]
Знать надо совсем немного - уважать время другого программиста, который потенциально может работать с твоим кодом.
← →
TUser © (2007-08-24 20:46) [14]> Вообще, все эти exit, Break и т.д. я считаю плохим тоном программирования, так как можно обойтись и без них :-)
Вообще-то можно обойтись даже без for, while, repeat, procedure, function, unit, interface, implementation, uses а также без begin/end, кроме как тех, которые значат собой основное "тело" программы. Вместо всего этого спокойно можно использовать label и goto. Причем все это - в рамках Паскаля.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.09.16;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.043 c