← Questões de Programação

Programação · FUNDATEC · 2023

Questão comentada de Programação

Analise o seguinte trecho de código Java: int n= 017; System.out.println(n); O que acontecerá após a execução?

Gabarito: C

Em Java, quando voce escreve um número inteiro começando com 0, ele não é lido como decimal comum. Esse detalhe faz toda a diferença: o compilador interpreta esse literal como octal, que é o sistema de base 8. Ou seja, os algarismos válidos vão de 0 a 7, e o valor 017 em octal equivale a 15 em decimal. Na prática, a variável n recebe o valor 15. Quando o System.out.println(n) executa, ele imprime o valor numérico armazenado na variável, e não a forma como o literal foi digitado no código. Então nada de "017" na saída: o que aparece é o valor convertido para decimal. Esse é um clássico de provas de Java: literal com zero à esquerda pode mudar completamente a leitura do número. Não há erro de compilação nem de execução aqui, porque 017 é um literal octal válido. O resultado correto é a impressão de 15. Em resumo: em Java, inteiro com zero inicial é octal por regra da linguagem, e 017(octal) = 15(decimal).

Continue treinando

Questões relacionadas