Tags: , , | Categories: C#, Linguagem de Programação Posted by Rafael on 10/10/2010 08:02 | Comentários (0)

Apesar de parecer um assunto para iniciantes na linguagem, me surpreendi um dia, junto com um colega de trabalho, descobrindo alguns operadores da linguagem C#, que eu nunca havia utilizado antes. Então, mesmo que você já domine a linguagem C#, de alguma forma, esse post pode ser útil.

Com esse post, inicio uma série de posts sobre operadores C#. Nesse primeiro, vamos falar sobre os operadores lágicos & (and) e | (or) e seus respectivos condicionais && e ||.

Diferença entre os operadores "& e &&" e/ou "| e ||"

Consideremos o seguinte trecho de código:

    class Program

    {

        static void Main(string[] args)

        {

            int x = 0;

            for (int i = 0; i < 10; i++)

            {

                if (false & ++x == 2)

                {

                    // ...

                }

            }

        }

    }

Se inserirmos um breakpoint no código e o debugarmos, veremos que a variável x é incrementada (o incremento de variáveis será abordado no próximo post), mesmo se a condição não for verdadeira:

Porém, se substituirmos o operador & pelo &&, o código ficará assim, e notaremos que a variável x não é alterada.

O mesmo comportamento se repete para os operadores | e ||:

Com o operador |

Agora, substituindo o operador | pelo ||

Com isso, concluímos que quando utilizamos os operadores & e |, todas as partes da condição são verificadas. Notamos isso pois a variável x é incrementada. Porém, quando utilizamos os operadores && e ||, a variável não é incrementada. Isso ocorre porque a verificação é executada da esquerda para a direita, por exemplo, if ( 1ª verificação && 2ª verificação && 3ª verificação ), e, caso a primeira parte (ou segunda parte) da condição seja válida (entenda como condição válida a condição verdadeira para entrada ou não do if), as demais não são verificadas, como observamos nos exemplos acima, ou seja, não é necessária a validação completa da condição.

Bom, é isso.

Espero que tenham gostado.

Até a próxima!

Comentários

Os comentários estão fechados