Вопрос по if-statement – Как сделать отступ для длинных условий для операторов if?

16

Мой вопрос касаетсяэтот предыдущий вопрос, но предлагаемые решения не решают проблему, которую я изложил ниже. После поиска в Google я не нашел ни одного руководства по стилю кода, которое бы решало конкретную проблему длинных условий в выражении if, подобном этому.

if( isNull(value1) ||
    isToLong(value1) ||
    hasBadFormat(valule1)){
    doSomething();
}else{
    doSomethingElse();
}

ИЛИ ЖЕ:

if( isNull(value1) || isToLong(value1) || hasBadFormat(valule1) ){
    doSomething();
}else{
    doSomethingElse();
}

Проблема, с которой я сталкиваюсь в этих двух стилях, заключается в том, что моему глазу трудно найти код в истинном блоке и отделить его от условных выражений, или глазу слишком сложно определить правильную следующую строку после долгого условного включения. одна строка, особенно если оператор if уже имеет отступ на несколько вкладок внутри функции или другой оператор if.

Было бы предпочтительнее сделать что-то вроде этого:

if(     isNull(value1) ||
        isToLong(value1) ||
        hasBadFormat(valule1)){
    doSomething();
}else{
    doSomethingElse();
}

или этот стиль будет лучше для каждого нового условия с помощью одного из следующих способов:

if( isNull(value1) ||
        isToLong(value1) ||
            hasBadFormat(valule1)){
    doSomething();
}else{
    doSomethingElse();
}

if( isNull(value1) 
        || isToLong(value1) 
            || hasBadFormat(valule1) ){
    doSomething();
}else{
    doSomethingElse();
}

Есть ли у кого-нибудь руководство по стилю кодирования (возможно, политика стиля кодирования компании), которое решает эту проблему другим или лучшим способом, чем я предлагал? Какой из них предпочтительнее, и можете ли вы найти какие-либо минусы или плюсы в решениях, которые я упомянул?

Ваш Ответ

7   ответов
-2

Error: User Rate Limit Exceeded

if (bool)        // comment
{   dothis;        
    andthis;       
} else if (bool) // comment
{   dothis;       
    andthis;        
} else           // comment
{   dothis;        
    andthis;     
}
8

Error: User Rate Limit Exceeded

</flamebait>

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
13
if( isNull(value1) ||
    isToLong(value1) ||
    hasBadFormat(valule1))
{
    doSomething();
}
else
{
    doSomethingElse();
}

if( isNull(value1)
    || isToLong(value1)
    || hasBadFormat(valule1))
{
    doSomething();
}
else
{
    doSomethingElse();
}

:-)

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Jayson
24

bool isValid = isNull(value1) || isToLong(value1) || hasBadFormat(valule1);
if( isValid )
{
   doSomething();
}
else
{
   doSomethingElse();
}

Error: User Rate Limit Exceeded Jayson
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
1

if(isNull(value1)
   || isTooLong(value1)
   || hasBadFormat(valule1))
{
   doSomething();
} /* if */
else
{
   doSomethingElse();
} /* else */

if(0
   || isNull(value1)
   || isTooLong(value1)
   || hasBadFormat(valule1))
/* ...etc... */
<,/pre>

(For &&, it would be if(1 && a && b), etc.)

Or this:

if
(
   isNull(value1)
   || isTooLong(value1)
   || hasBadFormat(valule1)
)
/* ...etc... */
6

if(
    isValid = isNull(value1) ||
    isToLong(value1) ||
    hasBadFormat(valule1)
) {
    doSomething();
}
else {
    doSomethingElse();
}
2

if(isNull(value1) ||    
   isToLong(value1) ||
   hasBadFormat(valule1))
{    
    doSomething();
}
else
{    
    doSomethingElse();
}

if(isNull(value1) || isToLong(value1) || hasBadFormat(valule1))
{    
    doSomething();
}
else
{    
    doSomethingElse();
}

Похожие вопросы