(Java) Variáveis. Formatos de saída


Um computador não seria necessário se não tivesse a capacidade de armazenar várias informações em sua memória e processar informações do mesmo tipo usando os mesmos algoritmos. 
Para criar programas mais interessantes, é preciso aprender a armazenar informações na memória do computador. Ao mesmo tempo, precisamos aprender a acessar de alguma forma as células de memória do computador. 
Na programação, como na vida, para se referir a qualquer parte da memória do computador, ocorre pelo nome. Usando este nome, você pode ler informações e escrevê-las lá.

Uma variável é um local na memória do computador que tem um nome e armazena algum valor correspondente ao tipo.

A palavra "variável" nos diz que seu valor pode mudar durante a execução do programa.  Quando um novo valor de variável é salvo, o antigo é apagado


Para um computador, todas as informações são dados em sua memória - conjuntos de zeros e uns (para simplificar, qualquer informação em um computador são apenas números e os processa da mesma maneira). No entanto, sabemos que números inteiros e fracionários funcionam de maneira diferente. Portanto, cada linguagem de programação possui diferentes tipos de dados, que são processados ​​por diferentes métodos.

Por exemplo,
inteiro variáveis ​​– type int (do inglês integer – whole), ocupa 4 bytes na memória;
reais variáveis ​​que podem ter uma parte fracionária (tipo float – do ponto flutuante inglês – ponto flutuante) ocupam 4 bytes na memória< br /> - caracteres (tipo char – do caractere inglês – símbolo), ocupam 1 byte na memória

Vamos tentar adicionar alguma variável ao nosso programa.
Antes de usar uma variável, você precisa informar ao computador para alocar espaço na memória para ela. Para isso, a variável deve ser declarada, ou seja, especificar que tipo de valor ela irá armazenar, e dar um nome a ela.
Além disso, se necessário, você pode atribuir valores iniciais a ele. 

Vamos pegar um programa como exemplo
public class Principal {  
    public static void main(String[] args) {  
        int a=6, b;  //duas variáveis ​​do tipo inteiro foram declaradas na variável a e imediatamente salvaram o valor 6. A variável b não foi definida com o valor inicial; o que ficará na memória neste caso não sabemos.
    }
}

Agora tente você mesmo.

Vamos tentar escrever uma calculadora para números primos

Nossa tarefa é exibir alguma expressão aritmética na tela e fazer o computador calculá-la.
Por exemplo: 
5+7=12
Além disso, ao invés de 5 e 7 podem ser números diferentes, dependendo dos valores das variáveis ​​a e b do programa.

Na instrução de saída, você pode exibir não apenas texto, mas também os valores das variáveis, bem como o resultado de uma expressão aritmética. Além disso, a sequência de saída pode ser diferente. Por exemplo, para exibir a expressão acima, você precisa escrevê-la assim: System.out.print(a+"+"+b+"="+(a+b)); Se quisermos mostrar o valor de uma variável, basta especificar seu nome sem aspas. Se quisermos mostrar o resultado de uma expressão aritmética, basta escrever a expressão aritmética corretamente.

*** Em profundidade: entrada formatada ***
Na string de formato, o número de especificadores de saída não é limitado, o principal para cada especificador após a string de formato é listar todos os valores separados por vírgulas, que serão substituídos pelo modelo. Por exemplo: System.out.printf("%d+%d=%d",a,b,a+b); A string de formato especifica três especificadores para imprimir valores inteiros.  ; A ordem de substituição é direta.  Aqueles. em vez do primeiro modelo %d será exibido o valor da variável a; em vez do segundo -  o valor da variável b; e  em vez do terceiro - o valor da expressão a+b E agora vamos escrever um programa que exibe o resultado de operações aritméticas básicas com essas variáveis

Para que o próprio usuário possa definir o valor da variável, é necessário poder inserir valores a partir do teclado. Para isso, é utilizado o objeto in, que é escrito assim: Scanner em = new Scanner(System.in); Mas para que funcione, você deve primeiro importá-lo usando import java.util.Scanner

Para obter um valor inteiro, use   in.nextInt();, cujo resultado deve ser atribuído a uma variável.
Por exemplo,  int a = in.nextInt();
Existem outros métodos para outros tipos de dados: 
  • next(): lê a linha de entrada até o primeiro espaço
  • nextLine(): lê toda a linha de entrada
  • nextInt(): lê o int digitado
  • nextDouble(): lê a entrada dupla
  • nextBoolean(): lê um valor booleano
  • nextByte(): lê o byte do número digitado
  • nextFloat(): lê o float inserido
  • nextShort(): lê o número digitado short

*** material aprofundado: para interessados ​​na linguagem Java ***
Especificadores de saída adicionais permitem que você controle a saída de números em determinados formatos.

Largura mínima do campo
Exemplo:
%04d  - o número será exibido em 4 posições, se houver menos de quatro dígitos, os primeiros serão zeros
int a=34; System.out.printf("%04d",a); //na tela: 0 0 3 4   
O sublinhado é colocado aqui especificamente para exibição visual da saída do número.   

%4d – o mesmo, mas em vez de zeros haverá espaços
int a=34; System.out.printf(“%4d”,a); //na tela:      3 4 < /código>

Saída com certa precisão - usada para saída de números reais. Por padrão, os números reais são exibidos com uma precisão de até 6 casas decimais. Mas há casos que precisam ser gerados com uma precisão diferente. Nesse caso, você precisa especificar quantos lugares de familiaridade alocar para o próprio número e quantos após o ponto decimal.
Por exemplo,
%9.3f   - um número real será exibido em 9 posições, com três casas decimais.

duplo a=34.24356; System.out.printf("%9.3f",a); // na tela: _ _ _ 3 2 . 2 4 4


Vamos tentar usar essas informações na prática.

Este material destina-se a um estudo mais aprofundado. Analisaremos como imprimir variáveis ​​usando o operador de saída Java (printf)
*** Material profundo ***


Como exibir o valor de uma variável na tela?
Para fazer isso, dentro da string de formato na declaração de saída, você deve especificar um modelo, no lugar do qual o valor da variável será exibido.
Qual modelo usar depende do tipo da variável. 
Esses padrões são chamados de especificadores de saída e são apresentados na tabela. Um número suficiente de especificadores é fornecido. Não é necessário memorizar todos eles. 
Na maioria dos casos, usaremos especificadores para gerar inteiros, números reais, bem como caracteres e strings. Mas você pode retornar a esta lição a qualquer momento e ver o modelo de que precisa.
 
Código Formato
%c Símbolo
%d Inteiro decimal com sinal
%i Inteiro decimal com sinal
%e Formato científico (e minúsculo)
%E Formato científico (E maiúsculo)
%f Flutuação real 
%g Dependendo de qual formato é mais curto, %e ou %f é usado
%G Dependendo de qual formato é mais curto, %E ou %f é usado
%o Octal assinado
%s Sequência de caracteres
%u Inteiro decimal sem sinal
%x Número hexadecimal não assinado (minúsculas)
%X Número hexadecimal não assinado (maiúsculas)
%p Índice
%n Ponteiro para uma variável inteira. O especificador faz com que esta variável inteira receba o número de caracteres impressos antes dela
%% Sinal %                           

Acréscimos:
Para exibir variáveis ​​como short int  o modificador h é usado (por exemplo, \(\%hd\))
Para exibir os valores das variáveis ​​do tipo long int, use o modificador l (por exemplo, \(\%ld \))< br /> O modificador L pode ser usado como um prefixo antes dos especificadores e, f, g. Isso significa que um valor do tipo long double é exibido na tela.  (por exemplo, \(\%Lf\))

Vejamos um exemplo na prática

 

Para  a saída de um número real foi garantida com um ponto como separador, você deve usar o layout americano, que está conectado com:
  Localidade.setDefault(Localidade .EUA);