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