Dentro de um bloco, podemos declarar variáveis e usá-las. Em Java, toda variável tem um tipo que não pode ser mudado, uma vez que declarado.
tipoDaVariavel nomeDaVariavel;
| Operação | Operador | Expressão algébrica | Expressão Java |
| Adição | + | a + 1 | a +1 |
| Subtração | - | b -2 | b -2 |
| Multiplicação | * | c.m | c * m |
| Divisão | / | d / e | d / e |
| Resto | % | f mod g | f % g |
| Operador | Operação | Ordem de avaliação(precedência) |
| * / % | Multiplicação Divisão Resto | Avaliado primeiro. Se houver vários operadores desse tipo serão avaliados da esquerda para a direita |
| + - | Adição Subtração | Avaliado em seguida. Se houver vários operadores desse tipo, serão avaliados da esquerda para a direita. |
| = | Atribuição | Avaliado por último |
No Java, a partir do Java 1.5 ou J2SE 5, que recebeu o codinome "Tiger", está disponível a classe Scanner do pacote java.util. Essa classe implementa as operações de entrada de dados pelo teclado no console.
| Para utilizar a classe Scanner em uma aplicação Java deve-se proceder da seguinte maneira: | |
| [ 1 ] | importar o pacote java.util: import java.util.Scanner; |
| [ 2 ] | Instanciar e criar um objeto Scanner: Scanner ler = new Scanner(System.in); |
| [ 3 ] | Lendo valores através do teclado: |
| [ 3.1 ] | Lendo um valor inteiro: int n; System.out.printf("Informe um número para a tabuada: "); n = ler.nextInt(); |
| [ 3.2 ] | Lendo um valor real: float preco; System.out.printf("Informe o preço da mercadoria = R$ "); preco = ler.nextFloat(); |
| [ 3.3 ] | Lendo um valor real: double salario; System.out.printf("Informe o salário do Funcionário = R$ "); salario = ler.nextDouble(); |
| [ 3.4 ] | Lendo uma String, usado na leitura de palavras simples que não usam o caractere de espaço (ou barra de espaço): String s; System.out.printf("Informe uma palavra simples:\n"); s = ler.next(); |
| [ 3.5 ] | Lendo uma String, usado na leitura de palavras compostas, por exemplo, Pato Branco: String s; System.out.printf("Informe uma cadeia de caracteres:\n"); s = ler.nextLine(); |
| [ 3.6 ] | Na leitura consecutiva de valores numéricos e String deve-se esvaziar o buffer do teclado antes da leitura do valor String, por exemplo: int n; String s; System.out.printf("Informe um Número Inteiro: "); n = ler.nextInt(); ler.nextLine(); // esvazia o buffer do teclado System.out.printf("Informe uma cadeia de caracteres:\n"); s = ler.nextLine(); |
| [ 3.7 ] | Lendo um caractere usando o método read() do pacote de classes System.in: public static void main(String args[]) throws Exception { char c; System.out.printf("Informe um Caractere: "); c = (char)System.in.read(); } |
Alguns valores são incompativeis se você tentar fazer uma atribuição direta.
double d = 3.14;
int a = d; // Erro - não compila.
double d = 5; // o double pode conter um número inteiro.
int a = d; // Erro - não compila.
Já o código abaixo funciona sem problemas.Um double pode guardar um número inteiro.
int i = 5;
double d = i;
Se precisarmos que um número real seja truncado e armazenado em uma variável inteira. Esse proesso recebe o nome de casting
double d = 3.14;
int i = (int) d;
Em java os valores ponto flutuante são considerados double, e um float não pode receber um double sem predas de informação.
float x = 0.5; // Erro.
float x = 0.5f; // Certo.
double d = 0.5;
float f = 0.3f;
float x = f + (float) d; // Certo.
O único tipo primitivo que não pode ser atribuído a nenhum outro tipo é o boolean.
Na tabela abaixo é mostrado os casts do Java. A indicação Impl. quer dizer que aquele cast é implícito e automático.
| Tipo | Utilização |
| boolean | Manipulação de valores booleanos true ou false |
| byte | Manipulação de valores reais muitos pequenos e de dados em arquivos. |
| short | Manipulação de valores pequenos. |
| char | Manipulação de caracteres. |
| int | Manipulação de valores inteiros. |
| long | Manipulação de dados para os quais a faixa do int não seja suficiente. |
| float | Manipulação de números reais de precisão simples. |
| double | Manipulação de valores de precisão dupla. |
Nesta tabela é mostrado a faixa de valores que suportam os tipos das variáveis primitivas.
| boolean | false | true |
| byte | -128 | 127 |
| short | -32768 | 32767 |
| char | 0 | 65535 |
| int | -4294967296 | 4294967295 |
| long | -1.84467E+19 | 1.84467E+19 |
| * float | varia | varia |
| * double | varia | varia |
A sintaxe do Java para o if é:
if(condiçãoBooleana){
código;
}
Uma condição booleana é qualquer coisa que retorne true ou false. Para isso você pode usar operadores <,>,<=,>= e outros.
int diaMes = 40;
if(diaMes > 31){
System.out.println("Dia inválido !");
}
Você pode utilizar a clausula else para indicar o comportamento que deve ser executado no caso da expressão booleana ser falsa.
int diaMes = 40;
if(diaMes > 31){
System.out.println("Dia inválido !");
} else {
System.out.println("Dia válido");
}
Você pode concatenar expressões booleanas através de operadores lógicos "E" e "OU". O "E" é representado pelo && e o "OU" é representado pelo ||.
int idade = 15;
boolean amigoDoDono = true;
if(idade < 18 && amigoDoDono == false){
System.out.println("Não pode entrar");
} else {
System.out.println("Pode entrar");
}
O while é um comando utilizado para repetir um trecho de código algumas vezes. Um determinado trecho de código é repetido enquanto uma determinada condição permanecer verdadeira.
while(condição){
código;
}
Exemplo:
int dia = 1;
while(dia < 31){
System.out.println(dia);
dia++;
}
O trecho dentro do bloco será executado até o momento que a condição dia < 31 passe a ser falsa. O while acima imprime de 1 a 30
A ideia do for é a mesma do while, fazer um trecho de código ser repetido enquanto uma condição continuar verdadeira. O for isola um espaço para a inicialização de variáveis e o modificados dessas variáveis.
for(inicialização;condição;incremento){
código;
}
Exemplo:
for(int dia =1;dia<31;dia++){
System.out.println(dia);
}
Apesar de termos condições booleanas, nossos laços podem decidir parar o loop por algum motivo especial sem que o resto seja executado.
for(int i = x; i < y; i++){
if(i%5 == 0){
System.out.println("Achei um numero divisivel por 5 ente "+x+" e "+y);
break;
}
}
O código acima vai percorrer os números de x a y e parar quando encontrar um númeor divisivel por 5, uma vez que foi utilizado a palavra chave break.
No código mostrado abaixo, obrigamos o loop a executar o proximo laço, sem antes terminar o laço atual.
for(int i = 0; i <10; i++ ){
if(i>4 && i<7)
continue;
System.out.println(i);
}
No exemplo acima será impresso os números 0,1,2,3,4,7,8,9.
Podemos declarar variáveis a qualquer momento no Java. Porém, dependendo de onde você as declarou, ela vai valer de um deerminado ponto a outro.
// Aqui avariável x não existia
int x = 10; // A partir daqui ela existe
O escopo da variável é o nome dado ao trecho de código em que aquela variável existe e onde é possivel acessá-la.
Quando abrimos um novo bloco com as chaves, as variáveis declaradas ali dentro só valem até o fim daquele bloco.
Exemplo com erro
if(condição) {
int i = 5;
}
else {
int i = 10;
}
System.out.println(i); // Erro - o i não está declarado neste escopo
Exemplo correto
{
int i;
if(condição){
i = 5;
}
else {
i = 10;
}
System.out.println(i);
}
Conjunto de elementos do mesmo tipo.
Arrays não podem mudar de tamanho. A partir do momento que um array foi criado, ele não pode mudar de tamanho.
public static void main(String args[]) {
int[] idades = new int[10];
for (int i = 0; i < 10; i++)
idades[i] = i * 10;
for (int i = 0; i < 10; i++) {
System.out.println(idades[i]);
}
Podemos imprimir conforme mostrado abaixo.
for(int x:idades)
system.out.println(x);