Upload
keefer
View
35
Download
2
Embed Size (px)
DESCRIPTION
Java Básico Aula 2 por Flávio Juvenal. Sintaxe e Semântica. Sintaxe: parte da estrutura gramatical de uma língua que contém as regras relativas à combinação das palavras em unidades maiores (como as orações), e as relações existentes entre as palavras dentro dessas unidades; - PowerPoint PPT Presentation
Citation preview
+
Java BásicoAula 2
por Flávio Juvenal
++Sintaxe e Semântica
Sintaxe: parte da estrutura gramatical de uma língua que contém as regras relativas à combinação das palavras em unidades maiores (como as orações), e as relações existentes entre as palavras dentro dessas unidades;
Semântica: estudo da linguagem humana do ponto de vista do significado das palavras e dos enunciados;
2
++Identificadores
Podem ser usados para dar nome a: Variáveis Métodos Atributos Classes ...
3
++Identificadores
Devem começar por uma letra, um _ (underscore) ou um $ (cifrão)
O restante dos caracteres podem ser letras, números, underscores ou cifrões
São case sensitive (há diferença entre maiúsculas e minúsculas)
Não pode ser nenhuma palavra reservada
4
++Palavras reservadas
5
++Identificadores
Evitem nomes sem significado (ou sem sentido)
Evitem siglas cujo significado não seja claro
Sigam o padrão para nomenclatura
6
++Declaração de variáveis
Sintaxe:TipoDaVariavel nome;
Padrão de nomeclatura: Começam com letras minúsculas, Se houver mais do que uma palavra, a seguinte começa
com letra maiúscula
7
+Tipos Primitivos
boolean true ou false
char caracteres (16 bits Unicode)
byte inteiro (8 bits)
short inteiro (16 bits)
int inteiro (32 bits)
long inteiro (64 bits)
float ponto flutuante (32 bits)
double ponto flutuante (64 bits)
8
++Declaração de variáveis
Declarações corretas:int soma;
char primeiraLetra;
boolean achou;
Declarações incorretas:integer soma;
char 1letra;
double #saldo;
9
++Strings
String representa uma cadeia ordenada de caracteres;
Não são tipos primitivos!String s = “Olá Mundo!”;
Note que String começa com uma letra maiúscula diferentemente dos tipos primitivos
10
++Inicialização de variáveis
Para dar um valor a uma variável, utilizamos a seguinte sintaxe:identificadorDaVariavel = valor_valido;
Exemplos:int soma = 3;int mesmaSoma = soma;double saldo = 350.30;boolean achou = false;String nomeDoInstrutor = “Flávio”;
11
++Operadores
Existem 7 tipos de operadores: Aritméticos Concantenação Relacionais Lógicos Atribuição Unários Condicional
12
++Operadores aritméticos
Servem para realizar as 4 operações básicas, mais a operação de módulo
+ - * / %Exemplos:soma = soma + 10; // 13
int idade = 21; // 21
double saldo = 300 * 1.05; // 315
int resto = 5 % 2; // 1
13
++Operador de concatenação
Serve para concatenar (juntar) duas Strings
+Exemplos:String nomeDoCurso = “Java” + “ Básico”; //Java Básico
14
++Operadores relacionais
Servem para representar os conceitos de igualdade e desigualdade
> < >= <= == !=Exemplosboolean resultado = 10 > 5; // true
resultado = 10 != 5; // true
resultado = 10 == 5; // false
15
++Operadores lógicos
Realizam operações de lógica booleana
&& ||Exemplos:
boolean vaiParaFinal = media >= 3 && media < 7;
boolean teste = true || false;
16
++Operadores de atribuição
Executam uma (ou nenhuma) operação e atribuem o resultado à variável
= += *= -= /= %=Exemplos:int x = 3;
x *= 5; // x = x * 5 == 15
x %= 4; // x = x % 4 == 1
17
++Operadores unários
Tem apenas um operando e servem para incrementar, decrementar, inverter o sinal e negar.
++ -- ! -Exemplos:boolean b = !false;
int x = 13;
int y = -x;
18
++Operadores unários
Os operadores ++ e –- tem uma peculiaridade: podem ser prefixados ou posfixados
A diferença aparece na hora em que o valor é usado
Exemplo: int x = 0; int y = x++; // y == 0, x == 1 int z = ++y; // z == 1, y == 1;
19
++Operador condicional
O único operador ternário de Java, só deve ser usado para condicionais simples
?:Exemplos:boolean condicao = true;
int valor = condicao ? 3 : 4; //valor == 3
20
+Ordem de Avaliação dos Operadores
Do maior para o menor: Unário Posfixado expr++ expr-- Unário Prefixado ++expr --expr +expr -expr ~ ! Multiplicativos * / % Aditivos + - Shift << >> >>> Relacionais < > <= >= instanceof Igualdade == != Bit-a-bit AND & Bit-a-bit exclusive OR ^ Bit-a-bit inclusive OR | Lógico AND && Lógico OR || Ternário ? : Atribuição = += -= *= /= %= &= ^= |= <<= >>= >>>=
21
++AssociatividadeOperadores com a mesma precedência são avalidados da
esquerda para a direita:
a + b + c equivale a (a + b) + c
Com exceção da atribuição!
a = b = c equivale a a = (b = c)
Podemos alterar a associatividade ou a ordem de avaliação utilizando parênteses
int x = 6 / 1 + 2; // 8
int y = 6 / (1 + 2); // 2
22
++Estruturas de controle
Servem para alterar o fluxo normal de um programa com a possibilidade de escolhas e repetições. São elas: if if-else if-else-if switch while do-while for
23
++Estruturas de controle
O if permite que um determinado trecho execute se a sua condição for true
Sintaxe:if (expressao_booleana) {
//código
}
24
++Estruturas de controle
Fluxo:
ifif
ComandosComandos
true
ComandosComandos
false
25
++Estruturas de controle
O if-else permite que um trecho execute se a condição for true, ou outro, caso a condição seja falseif (expressao_booleana) {
//código
}
else {
//código alternativo
}
26
++Estruturas de controle
Fluxo:
if-elseif-else
ComandosComandos
true
ComandosComandos
false
ComandosComandos
27
++Estruturas de controle
O if-else-if é como um novo if dentro do else
Sintaxe:if (expressao_booleana) {
//código
}
else if (outra_expressao_booleana) {
//outro código
}
else {
//ainda outro código
}
28
++Estruturas de controle
O switch permite executar trechos de código baseado em tipos inteiros ou char
Sintaxe:switch (inteiro) {
case 1:
//comandos
case 47:
//comandos
default:
//comandos
}
29
switch (caractere) {
case ‘a’:
//comandos
case ‘b’:
//comandos
default:
//comandos
}
++Estruturas de controle
É necessário usar break para que o switch não entre em mais de um caseint x = 3;
switch (x) {
case 3:
System.out.println(“É 3”);
break;
default:
System.out.println(“Não é 3”);
}
30
++Escopo
O escopo de uma variável determina onde ela é visível, ou seja, onde ela pode ser usada
A regra é: dentro das chaves onde a declaração foi feita a variável é visível, fora das chaves, resulta em erro de compilação
31
++Escopo
Exemplo de escopo local:public static void main(String[] args) {
int inteiroDoMain = 0;
boolean condicao = true || false;
if (condicao) {
int inteiroDoIf = 1;inteiroDoMain = inteiroDoIf + 2;//a linha acima funciona normal
}
inteiroDoMain = inteiroDoIf + 1;
//a linha acima dá erro
}
32
+Tipos Primitivos (novamente!)
boolean true ou false
char caracteres (16 bits Unicode)
byte inteiro (8 bits)
short inteiro (16 bits)
int inteiro (32 bits)
long inteiro (64 bits)
float ponto flutuante (32 bits)
double ponto flutuante (64 bits)
33
+Conversão de tipos
34
É possível converter um valor para um novo valor de outro tipo
Java suporta conversão implícita e explícita de tipos
Como os tipos em Java possuem diferentes quantidades de bits cada um, pode-se perder dados na conversão explícita!
+Conversão implícita
35
A conversão implícita é feita quando os tipos são compatíveis
Exemplos:
int valorInteiroDe32bits = 9292;long valorInteiroDe64bits = valorInteiroDe32bits;double valorRealDe64bits = valorInteiroDe64bits;
+Conversão explícita
36
A conversão explícita é feita colocando o nome do tipo entre parênteses ao lado esquerdo do valor a ser convertido
Exemplos:
double numeroReal = 10.0 / 3.0;int numeroInteiro = (int) numeroReal;
++Prática!
1. Faça um programa que leia entrada do usuário e diga se o número digitado é par e se ele é múltiplo de 3
2. Faça um programa que leia 3 inteiros do usuário e imprima seu produto
3. Faça um programa que leia 3 inteiros do usuário e imprima o maior dos 3
OBS: Para ler entrada do usuário utilize as seguintes linhas:Scanner input = new Scanner(System.in);
int numero = input.nextInt();
37
+Referências http://download.oracle.com/docs/cd/E17409_01/javase/tutorial/java/nutsandbolts/index.html
http://download.oracle.com/docs/cd/E17409_01/javase/tutorial/java/index.html