Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.041 c
2-1187952310
Adios
2007-08-24 14:45
2007.09.16
вопрос про местоположение формы


2-1187978196
Jimmy
2007-08-24 21:56
2007.09.16
Вывод текста без TextOut


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


15-1187302091
Install
2007-08-17 02:08
2007.09.16
Что можно почитать о цветовой схеме YCbCr на русском?


15-1187762538
umbra
2007-08-22 10:02
2007.09.16
Никто не встречал такого вируса/трояна/руткита





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский