Привет!
Wed Jun 07 2006 19:29, Dmitry Lyokhin wrote to Jurgis Armanavichius:
JA>> Это точно. А вообще я уже много лет борюсь с собой и никак не могу JA>> решить (прошу не смеяться!): использовать табуляцию, или нет :-) JA>> В смысле: JA>> int MyProg(int param) JA>> { JA>> if(DeviceActive) { JA>> if(input_data_flag) { JA>> if(InputData[0] == INIT_COMMAND) { JA>> if(InputData[1] == GET_PARAM_SUBCOMMAND) { JA>> if(OldParam != param) { JA>> <и так довольно глубоко ;-)>
JA>> } ... JA>> В общем, сложный это вопрос. В нем хорошо помогает грамотный редактор. DL> В общем случае помогает грамотная голова. DL> if(DeviceActive && input_data_flag DL> && InputData[0] == INIT_COMMAND DL> && InputData[1] == GET_PARAM_SUBCOMMAND DL> && OldParam != param) DL> { DL> ... DL> }
А еще больше помогает правильное использование грамотной головы ;-) Я эти if'ы написал кратко, чтобы показать отступ текста программы вправо. И уж, конечно, понятно, что их всех можно объединить в один! Hо все дело в том, что ты абсолютно не следил за дискуссией. (Подозреваю, что ты очень обрадовался, найдя эту "оплошность" и лихое ее решение ;-)
А на самом деле каждый if сложнее и содержит под собой немало операторов до следующего if'а. Вот чтобы не заграмождать экран лишним для понимания вопроса текстом, я и упростил этот текст. Т.к. речь шла о быстром смещении текста программы вправо, а не о ловком умении некоторых круто объединять if'ы в кучку ;-)
Теперь ты ферштейн?
DL> Еще существуют некие эмпирические правила, которые говорят, что если DL> у аффтара возникают DL> 20-ти вложенные циклы и if-ы, и если длина функции превышает пару DL> экранов, то что-то здесь не DL> то, и надо править в консерватории.
О да, конечно, о Великий! Благодаря тебе я наконец-то узнаю, что два и более условий можно объединить в один if... :-)
DL> Также существуют отработанные правила синтеза конечных автоматов, DL> без тридцативло женных ифов.
А также существуют глаза и мозги для того, чтобы следить за дискуссией, а не вклиниваться в ее середину со своими крутыми откровениями ни к селу, ни к городу. И совершенно не по обсуждаемой теме.
Юргис