Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.16;
Скачать: CL | DM;

Вниз

В каких случаях как лучше писать?   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.025 c
15-1187590944
kudatsky
2007-08-20 10:22
2007.09.16
Пропали хинты


6-1169389960
AdmeraL
2007-01-21 17:32
2007.09.16
TWebBrowser


15-1187600290
Наташа
2007-08-20 12:58
2007.09.16
Обращение к мадератором


9-1160773810
nafta
2006-10-14 01:10
2007.09.16
AI GLScene


3-1177857180
Galiaf
2007-04-29 18:33
2007.09.16
Вместо строки ссылка в мастере подстановок