Escreva Atribuições em Instruções Separadas
É frequentemente conveniente escrever uma atribuição dentro de uma condição if
, mas isso pode reduzir a legibilidade do programa. Aqui está um exemplo do que evitar:
if (x = advance (x))
…
A ideia aqui é avançar x
e testar se o valor é diferente de zero. No entanto, os leitores podem não perceber que está sendo usado ‘=’ e não ‘==’. De fato, escrever ‘=’ onde ‘==’ era pretendido dentro de uma condição é um erro comum, por isso o GNU C pode emitir avisos quando ‘=’ aparece de uma forma que sugere ser um erro.
É muito mais claro escrever a atribuição como uma instrução separada, assim:
x = advance (x);
if (x != 0)
…
Isso torna inconfundivelmente claro que x
está recebendo um novo valor.
Outro método é usar o operador vírgula (veja ), assim:
if (x = advance (x), x != 0)
…
No entanto, colocar a atribuição em uma instrução separada geralmente é mais claro, a menos que a atribuição seja muito curta, pois isso reduz o aninhamento.
Atualizado
Isto foi útil?