Vídeo: Curso de Java 07: Entendendo os Erros 2024
Os erros lógicos na programação Java podem ser extremamente difíceis de encontrar porque não refletem nenhum tipo de problema de codificação ou um erro no uso de elementos de linguagem Java. O código corre perfeitamente como escrito - apenas não está executando a tarefa que você esperava que ele executasse.
Como resultado, erros lógicos podem ser os erros mais difíceis de encontrar. Você precisa passar o tempo passando pelo seu código à procura de um motivo preciso para o erro. Aqui está uma lista de erros lógicos comuns que os desenvolvedores Java encontram:
-
Usando o precedente incorreto do operador: A ordem em que o Java interpreta os operadores é importante. As aplicações geralmente produzem o resultado errado porque o desenvolvedor não inclui parênteses nos locais corretos.
Por exemplo, o exemplo a seguir produz saídas de 11, 13, 9 e 8 das quatro variáveis, tudo devido à localização (ou falta) dos parênteses.
classe pública OperatorError {public static void main (String [] args) {// Crie algumas variáveis. int MyVar1 = 5 + 4 * 3/2; int MyVar2 = (5 + 4) * 3/2; int MyVar3 = (5 + 4) * (3/2); int MyVar4 = (5 + (4 * 3)) / 2; // Saída do resultado. Sistema. Fora. println ("MyVar1:" + MyVar1 + "nMyVar2:" + MyVar2 + "nMyVar3:" + MyVar3 + "nMyVar4:" + MyVar4);}}
-
Definindo a contagem errada: Possivelmente o erro lógico mais comum está contando coisas incorretamente. As pessoas são usadas para começar a contar com 1, e os computadores geralmente começam a contar com 0. Portanto, não é incomum achar que os aplicativos são precisamente um fora na execução de uma tarefa, seja aquela tarefa que está executando um loop ou trabalhando com uma coleção de itens.
-
Supondo que uma condição é verdadeira quando não é: Os desenvolvedores geralmente analisarão a declaração usada para definir uma condição e assumirão que a afirmação é verdadeira (ou falsa) sem verificar a lógica da declaração.
O uso de uma declaração ou quando você realmente quis usar uma declaração e também pode causar problemas. A lógica empregada para tomar decisões faz com que muitos desenvolvedores, mesmo desenvolvedores experientes, tenham muitos problemas. Verifique sempre os seus pressupostos para declarações condicionais.
-
Baseando-se em números de ponto flutuante para trabalho de precisão: Você não pode assumir que os números de ponto flutuante entregarão um número específico. Isso significa que você não pode verificar um número de ponto flutuante para a igualdade em qualquer valor específico - você deve usar um intervalo de valores para executar a verificação. Os números de pontos flutuantes são sempre uma aproximação em Java.
-
Com base em valores inteiros para medir valores: Inteiros são ótimos para contar itens porque são precisos.No entanto, muitas operações matemáticas inteiras criam resultados imprecisos. Isto é especialmente verdadeiro para a divisão, porque o restante é sempre deixado. (O número é arredondado para baixo.) Use valores de ponto flutuante ou o tipo de objeto BigDecimal quando precisar medir algo e precisão é importante.
-
Passando um ponto-e-vírgula: É possível criar código Java que compila e corre perfeitamente bem, apesar de ter um ponto-e-vírgula no lugar errado. Aqui está um exemplo:
public class ForLoopError {public static void main (String [] args) {// Declare a variável. int Count; // Crie o loop. para (Count = 1; Count <= 10; count ++); {// Saída do resultado. Sistema. Fora. println ("Count is" + Count);}}}
Observe que o ponto e vírgula aparece imediatamente após a instrução for, em vez de depois do bloco de código como deveria. Em vez de imprimir valores individuais de Count, este exemplo imprime uma única frase que diz que Count é 11.