image

Access unlimited bootcamps and 650+ courses

50
%OFF

LM

Lavínia Melo29/04/2025 14:31
Share

Insights

    A medida que eu fazia alguns códigos nesta linguagem, iam me surgindo dúvidas de "por que tem que ser assim e não de outro jeito?".

    Pensando nisso resolvi compartilhar algumas das dúvidas que me passaram e a resposta que encontrei para elas, espero que seja tão útil para vocês quanto foi para mim! A medida que me surgirem mais dúvidas publico mais artigos.

    • Por que tem como usar apenas "&" dentro da estrutura do if em certos momentos mas em outros não ?

    Bom, ele não vale a pena de ser usado como um operador lógico pois analisa o resto da expressão, mesmo com a 1a sendo falsa, o que pode ocasionar em erros (como acessar algo null) e pesar no processamento do código, gastando mais memória do que seria necessário.

    Por outro lado, é muito útil em operações de bits, quando comparamos diretamente os bits dos números inteiros.

    Exemplo de uma situação comparando bit:

    int a = 5;

    int b = 3; 

    int c = a & b;

    5 em bits = 0101 e 3 em bits é 0011, logo 5 & 3 seriam 0001

    Resumindo: use & apenas se você precisa avaliar tudo, mesmo que a 1a seja falsa, ou se estiver trabalhando com bits.

    O "&&" é melhor para fazer comparações lógicas pois ele pula imediatamente ao identificar que a expressão é falsa, economizando processamento e indiretamente salvando memória também. Mas atenção, ele não pode ser usado para comparar os bits.

    • Não entendi muito bem o uso do " Integer.MAX_VALUE "

    Ele está basicamente nos dizendo que a variável começa com o maior valor possível, logo qualquer número digitado vai ser menor que o valor inicial, isso ajuda a ter menos gasto de memória mas aí você deve estar se perguntando: pra que vou usar ela então? Bom, você usa quando quiser encontrar o menor valor em uma sequência de números pois ao começar com o maior valor possível, qualquer número que você comparar será menor, e assim você consegue encontrar o menor número corretamente.

    O " Integer... " é para variáveis do tipo int, caso seja outro, como float por exemplo, você digitaria: " Float.MAX_VALUE " a lógica é a mesma, só muda a quantidade de bytes que o tipo da variável consegue armazenar (como foi explicado no próprio bootcamp).

    Agora pense comigo: se queremos encontrar o menor valor e começamos com o maior possível, precisamos criar uma estrutura de comparação que atualize o menor valor quando encontrar um número menor, certo?

    Para fazer isso é bem simples, olhe o seguinte exemplo prático que coloquei no meu código:

    int menorValor = Integer.MAX_VALUE

    if ( preco < melorValor){

    menorValor = preco

    }

    Com isso o código está basicamente verificando se a variável "preco" é menor que o menor valor registrado até o momento, se for verdadeiro nosso menor valor será atualizado, isso garante que, ao final, teremos o menor número da sequência.

    Essas foram algumas das dúvidas que surgiram enquanto eu aprendia, e que, com o tempo (e alguns erros no console), consegui entender melhor. Acredito que compartilhar esse tipo de coisa ajuda todo mundo a evoluir junto — afinal, quem nunca travou em algo que parecia simples, né?

    Se você curtiu o conteúdo e quiser acompanhar mais do meu trabalho me siga e contribua no meu Git Hub:

    https://github.com/m0rgan7

    Lá você vai encontrar projetos, códigos e outras coisas interessantes que estou desenvolvendo. Fique à vontade para explorar e até contribuir, se rolar!

    Share
    Recommended for you
    Microsoft 50 Anos - Prompts Inteligentes
    Microsoft 50 Anos - GitHub Copilot
    Microsoft 50 Anos - Computação em Nuvem com Azure
    Comments (0)