SlideShare uma empresa Scribd logo
Aula 08 – Condicionais e La¸cos
Norton Trevisan Roman
19 de mar¸co de 2020
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 1 / 31
Switch
Considere o c´odigo
que calcula o valor
da constru¸c˜ao:
static double valor(
double area) {
if (area >= 0)
return(valorM2*area);
return(-1);
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 2 / 31
Switch
Considere o c´odigo
que calcula o valor
da constru¸c˜ao:
static double valor(
double area) {
if (area >= 0)
return(valorM2*area);
return(-1);
}
Suponha agora que haja 4 materiais, com pre¸cos
diferentes, para a piscina
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 2 / 31
Switch
Considere o c´odigo
que calcula o valor
da constru¸c˜ao:
static double valor(
double area) {
if (area >= 0)
return(valorM2*area);
return(-1);
}
Suponha agora que haja 4 materiais, com pre¸cos
diferentes, para a piscina
Teremos que desmembrar o c´odigo, criando m´etodo
apenas para a piscina. Como fazer?
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 2 / 31
Switch
static final int ALVENARIA = 0;
static final int VINIL = 1;
static final int FIBRA = 2;
static final int PLASTICO = 3;
...
static double valorPiscina(double area,
int material) {
double valor;
if (material == ALVENARIA) valor = 1500;
else
if (material == VINIL) valor = 1100;
else
if (material == FIBRA) valor = 750;
else
if (material == PLASTICO)
valor = 500;
else valor = -1;
return(area*valor);
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 3 / 31
Switch
static final int ALVENARIA = 0;
static final int VINIL = 1;
static final int FIBRA = 2;
static final int PLASTICO = 3;
...
static double valorPiscina(double area,
int material) {
double valor;
if (material == ALVENARIA) valor = 1500;
else
if (material == VINIL) valor = 1100;
else
if (material == FIBRA) valor = 750;
else
if (material == PLASTICO)
valor = 500;
else valor = -1;
return(area*valor);
}
Constantes tamb´em
podem ser usadas para
definir categorias
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 3 / 31
Switch
static final int ALVENARIA = 0;
static final int VINIL = 1;
static final int FIBRA = 2;
static final int PLASTICO = 3;
...
static double valorPiscina(double area,
int material) {
double valor;
if (material == ALVENARIA) valor = 1500;
else
if (material == VINIL) valor = 1100;
else
if (material == FIBRA) valor = 750;
else
if (material == PLASTICO)
valor = 500;
else valor = -1;
return(area*valor);
}
Constantes tamb´em
podem ser usadas para
definir categorias
Deixam o c´odigo bem
mais leg´ıvel
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 3 / 31
Switch
static final int ALVENARIA = 0;
static final int VINIL = 1;
static final int FIBRA = 2;
static final int PLASTICO = 3;
...
static double valorPiscina(double area,
int material) {
double valor;
if (material == ALVENARIA) valor = 1500;
else
if (material == VINIL) valor = 1100;
else
if (material == FIBRA) valor = 750;
else
if (material == PLASTICO)
valor = 500;
else valor = -1;
return(area*valor);
}
Constantes tamb´em
podem ser usadas para
definir categorias
Deixam o c´odigo bem
mais leg´ıvel
Haveria como evitar
esse aninhamento?
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 3 / 31
Switch
switch (variavel) {
case valor1: c´odigo1
break;
case valor2: c´odigo2
break;
...
case valorn: c´odigon
break;
default: c´odigopadr~ao;
}
Correspondendo a:
if (variavel == valor1)
c´odigo1;
else
if (variavel == valor2)
c´odigo2;
else
...
else
if (variavel == valorn)
c´odigon;
else c´odigopadr~ao;
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 4 / 31
Switch
static final int ALVENARIA = 0;
static final int VINIL = 1;
static final int FIBRA = 2;
static final int PLASTICO = 3;
...
static double valorPiscina(double area,
int material) {
double valor;
if (material == ALVENARIA)
valor = 1500;
else
if (material == VINIL) valor = 1100;
else
if (material == FIBRA) valor = 750;
else
if (material == PLASTICO)
valor = 500;
else valor = -1;
return(area*valor);
}
static final int ALVENARIA = 0;
static final int VINIL = 1;
static final int FIBRA = 2;
static final int PLASTICO = 3;
...
static double valorPiscina(double area,
int material) {
double valor;
switch (material) {
case ALVENARIA: valor = 1500;
break;
case VINIL: valor = 1100;
break;
case FIBRA: valor = 750;
break;
case PLASTICO: valor = 500;
break;
default: valor = -1;
}
return(area*valor);
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 5 / 31
Switch
Switch testa a vari´avel
contra todos os valores
listados
static final int ALVENARIA = 0;
static final int VINIL = 1;
static final int FIBRA = 2;
static final int PLASTICO = 3;
...
static double valorPiscina(double area,
int material) {
double valor;
switch (material) {
case ALVENARIA: valor = 1500;
break;
case VINIL: valor = 1100;
break;
case FIBRA: valor = 750;
break;
case PLASTICO: valor = 500;
break;
default: valor = -1;
}
return(area*valor);
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 6 / 31
Switch
Switch testa a vari´avel
contra todos os valores
listados
Se o valor dela n˜ao
estiver listado, ativa o
c´odigo em default
static final int ALVENARIA = 0;
static final int VINIL = 1;
static final int FIBRA = 2;
static final int PLASTICO = 3;
...
static double valorPiscina(double area,
int material) {
double valor;
switch (material) {
case ALVENARIA: valor = 1500;
break;
case VINIL: valor = 1100;
break;
case FIBRA: valor = 750;
break;
case PLASTICO: valor = 500;
break;
default: valor = -1;
}
return(area*valor);
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 6 / 31
Switch
Switch testa a vari´avel
contra todos os valores
listados
Se o valor dela n˜ao
estiver listado, ativa o
c´odigo em default
default ´e opcional –
se n˜ao houver,
simplesmente sai do
switch e continua o
programa
static final int ALVENARIA = 0;
static final int VINIL = 1;
static final int FIBRA = 2;
static final int PLASTICO = 3;
...
static double valorPiscina(double area,
int material) {
double valor;
switch (material) {
case ALVENARIA: valor = 1500;
break;
case VINIL: valor = 1100;
break;
case FIBRA: valor = 750;
break;
case PLASTICO: valor = 500;
break;
default: valor = -1;
}
return(area*valor);
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 6 / 31
Switch
E o break?
static final int ALVENARIA = 0;
static final int VINIL = 1;
static final int FIBRA = 2;
static final int PLASTICO = 3;
...
static double valorPiscina(double area,
int material) {
double valor;
switch (material) {
case ALVENARIA: valor = 1500;
break;
case VINIL: valor = 1100;
break;
case FIBRA: valor = 750;
break;
case PLASTICO: valor = 500;
break;
default: valor = -1;
}
return(area*valor);
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 7 / 31
Switch
E o break?
Faz com que o switch
pare nesse ponto
static final int ALVENARIA = 0;
static final int VINIL = 1;
static final int FIBRA = 2;
static final int PLASTICO = 3;
...
static double valorPiscina(double area,
int material) {
double valor;
switch (material) {
case ALVENARIA: valor = 1500;
break;
case VINIL: valor = 1100;
break;
case FIBRA: valor = 750;
break;
case PLASTICO: valor = 500;
break;
default: valor = -1;
}
return(area*valor);
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 7 / 31
Switch
O que acontece se
tirarmos o break?
...
static double valorPiscina(double area,
int material) {
double valor;
switch (material) {
case ALVENARIA: valor = 1500;
case VINIL: valor = 1100;
case FIBRA: valor = 750;
case PLASTICO: valor = 500;
default: valor = -1;
}
return(area*valor);
}
...
public static void main(String[] args) {
System.out.println(
valorPiscina(100,ALVENARIA));
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 8 / 31
Switch
O que acontece se
tirarmos o break?
$ java AreaCasa
-100.0
...
static double valorPiscina(double area,
int material) {
double valor;
switch (material) {
case ALVENARIA: valor = 1500;
case VINIL: valor = 1100;
case FIBRA: valor = 750;
case PLASTICO: valor = 500;
default: valor = -1;
}
return(area*valor);
}
...
public static void main(String[] args) {
System.out.println(
valorPiscina(100,ALVENARIA));
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 8 / 31
Switch
O que acontece se
tirarmos o break?
$ java AreaCasa
-100.0
Quando o switch
come¸cou, ALVENARIA
fez valor=1500
...
static double valorPiscina(double area,
int material) {
double valor;
switch (material) {
case ALVENARIA: valor = 1500;
case VINIL: valor = 1100;
case FIBRA: valor = 750;
case PLASTICO: valor = 500;
default: valor = -1;
}
return(area*valor);
}
...
public static void main(String[] args) {
System.out.println(
valorPiscina(100,ALVENARIA));
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 8 / 31
Switch
Como n˜ao houve o
break, ele continuou, e
fez valor=1100, 750,
500 e, finalmente, -1
...
static double valorPiscina(double area,
int material) {
double valor;
switch (material) {
case ALVENARIA: valor = 1500;
case VINIL: valor = 1100;
case FIBRA: valor = 750;
case PLASTICO: valor = 500;
default: valor = -1;
}
return(area*valor);
}
...
public static void main(String[] args) {
System.out.println(
valorPiscina(100,ALVENARIA));
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 9 / 31
Switch
Como n˜ao houve o
break, ele continuou, e
fez valor=1100, 750,
500 e, finalmente, -1
Ent˜ao pegou esse
valor -1 e multiplicou
por area, retornando
...
static double valorPiscina(double area,
int material) {
double valor;
switch (material) {
case ALVENARIA: valor = 1500;
case VINIL: valor = 1100;
case FIBRA: valor = 750;
case PLASTICO: valor = 500;
default: valor = -1;
}
return(area*valor);
}
...
public static void main(String[] args) {
System.out.println(
valorPiscina(100,ALVENARIA));
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 9 / 31
Switch
Como n˜ao houve o
break, ele continuou, e
fez valor=1100, 750,
500 e, finalmente, -1
Ent˜ao pegou esse
valor -1 e multiplicou
por area, retornando
case define o ponto de
entrada. S´o isso.
...
static double valorPiscina(double area,
int material) {
double valor;
switch (material) {
case ALVENARIA: valor = 1500;
case VINIL: valor = 1100;
case FIBRA: valor = 750;
case PLASTICO: valor = 500;
default: valor = -1;
}
return(area*valor);
}
...
public static void main(String[] args) {
System.out.println(
valorPiscina(100,ALVENARIA));
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 9 / 31
Switch
E se agora removemos
o default?
Note que tamb´em
removemos o ´ultimo
break, por ser
desnecess´ario
Ir´a compilar?
static double valorPiscina(double area,
int material) {
double valor;
switch (material) {
case ALVENARIA: valor = 1500;
break;
case VINIL: valor = 1100;
break;
case FIBRA: valor = 750;
break;
case PLASTICO: valor = 500;
}
return(area*valor);
}
...
public static void main(String[] args) {
System.out.println(
valorPiscina(100,5));
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 10 / 31
Switch
$ javac AreaCasa.java
AreaCasa.java:85: variable
valor might not have been
initialized
return(area*valor);
^
1 error
static double valorPiscina(double area,
int material) {
double valor;
switch (material) {
case ALVENARIA: valor = 1500;
break;
case VINIL: valor = 1100;
break;
case FIBRA: valor = 750;
break;
case PLASTICO: valor = 500;
}
return(area*valor);
}
...
public static void main(String[] args) {
System.out.println(
valorPiscina(100,5));
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 11 / 31
Switch
$ javac AreaCasa.java
AreaCasa.java:85: variable
valor might not have been
initialized
return(area*valor);
^
1 error
O compilador n˜ao usa
algo que pode n˜ao ter
sido inicializado
static double valorPiscina(double area,
int material) {
double valor;
switch (material) {
case ALVENARIA: valor = 1500;
break;
case VINIL: valor = 1100;
break;
case FIBRA: valor = 750;
break;
case PLASTICO: valor = 500;
}
return(area*valor);
}
...
public static void main(String[] args) {
System.out.println(
valorPiscina(100,5));
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 11 / 31
Switch
Ent˜ao inicializemos...
static double valorPiscina(double area,
int material) {
double valor=0;
switch (material) {
case ALVENARIA: valor = 1500;
break;
case VINIL: valor = 1100;
break;
case FIBRA: valor = 750;
break;
case PLASTICO: valor = 500;
}
return(area*valor);
}
...
public static void main(String[] args) {
System.out.println(
valorPiscina(100,5));
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 12 / 31
Switch
Ent˜ao inicializemos...
E agora?
$ java AreaCasa
0.0
static double valorPiscina(double area,
int material) {
double valor=0;
switch (material) {
case ALVENARIA: valor = 1500;
break;
case VINIL: valor = 1100;
break;
case FIBRA: valor = 750;
break;
case PLASTICO: valor = 500;
}
return(area*valor);
}
...
public static void main(String[] args) {
System.out.println(
valorPiscina(100,5));
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 12 / 31
Switch
Ent˜ao inicializemos...
E agora?
$ java AreaCasa
0.0
Um valor inv´alido
deixou de ser tratado
static double valorPiscina(double area,
int material) {
double valor=0;
switch (material) {
case ALVENARIA: valor = 1500;
break;
case VINIL: valor = 1100;
break;
case FIBRA: valor = 750;
break;
case PLASTICO: valor = 500;
}
return(area*valor);
}
...
public static void main(String[] args) {
System.out.println(
valorPiscina(100,5));
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 12 / 31
Switch
static double valorPiscina(double area,
int material) {
double valor;
switch (material) {
case ALVENARIA: valor = 1500;
break;
case VINIL: valor = 1100;
break;
case FIBRA: valor = 750;
break;
case PLASTICO: valor = 500;
break;
default: valor = -1;
}
return(area*valor);
}
Daria para enxugar o
c´odigo, dado que h´a
uma escolha e um
retorno?
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 13 / 31
Switch
static double valorPiscina(double area,
int material) {
double valor;
switch (material) {
case ALVENARIA: valor = 1500;
break;
case VINIL: valor = 1100;
break;
case FIBRA: valor = 750;
break;
case PLASTICO: valor = 500;
break;
default: valor = -1;
}
return(area*valor);
}
Daria para enxugar o
c´odigo, dado que h´a
uma escolha e um
retorno?
static double valorPiscina(double area,
int material) {
switch (material) {
case ALVENARIA: return(area*1500);
case VINIL: return(area*1100);
case FIBRA: return(area*750);
case PLASTICO: return(area*500);
default: return(-1);
}
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 13 / 31
La¸cos
Queremos agora
comparar o valor de
uma piscina de
100m2
, para cada
material
Como far´ıamos?
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 14 / 31
La¸cos
Queremos agora
comparar o valor de
uma piscina de
100m2
, para cada
material
Como far´ıamos?
Primeira tentativa:
public static void main(String[]
args) {
double area = 100;
System.out.println("Materialt
Valor");
System.out.println(ALVENARIA+
"tt"+
valorPiscina(area,ALVENARIA));
System.out.println(VINIL+"tt"+
valorPiscina(area,VINIL));
System.out.println(FIBRA+"tt"+
valorPiscina(area,FIBRA));
System.out.println(PLASTICO+"tt"
+valorPiscina(area,PLASTICO));
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 14 / 31
La¸cos
t – tabula¸c˜ao
E qual a sa´ıda?
Material Valor
0 150000.0
1 110000.0
2 75000.0
3 50000.0
public static void main(String[]
args) {
double area = 100;
System.out.println("Materialt
Valor");
System.out.println(ALVENARIA+
"tt"+
valorPiscina(area,ALVENARIA));
System.out.println(VINIL+"tt"+
valorPiscina(area,VINIL));
System.out.println(FIBRA+"tt"+
valorPiscina(area,FIBRA));
System.out.println(PLASTICO+"tt"
+valorPiscina(area,PLASTICO));
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 15 / 31
La¸cos
t – tabula¸c˜ao
E qual a sa´ıda?
Material Valor
0 150000.0
1 110000.0
2 75000.0
3 50000.0
Com 4 tipos foi
f´acil...
public static void main(String[]
args) {
double area = 100;
System.out.println("Materialt
Valor");
System.out.println(ALVENARIA+
"tt"+
valorPiscina(area,ALVENARIA));
System.out.println(VINIL+"tt"+
valorPiscina(area,VINIL));
System.out.println(FIBRA+"tt"+
valorPiscina(area,FIBRA));
System.out.println(PLASTICO+"tt"
+valorPiscina(area,PLASTICO));
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 15 / 31
La¸cos
E se tiv´essemos 20 tipos diferentes de materiais?
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 16 / 31
La¸cos
E se tiv´essemos 20 tipos diferentes de materiais?
Repare nos valores dos tipos de material para a
piscina:
static final int ALVENARIA = 0;
static final int VINIL = 1;
static final int FIBRA = 2;
static final int PLASTICO = 3;
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 16 / 31
La¸cos
E se tiv´essemos 20 tipos diferentes de materiais?
Repare nos valores dos tipos de material para a
piscina:
static final int ALVENARIA = 0;
static final int VINIL = 1;
static final int FIBRA = 2;
static final int PLASTICO = 3;
S˜ao inteiros sequenciais...
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 16 / 31
La¸cos
E se tiv´essemos 20 tipos diferentes de materiais?
Repare nos valores dos tipos de material para a
piscina:
static final int ALVENARIA = 0;
static final int VINIL = 1;
static final int FIBRA = 2;
static final int PLASTICO = 3;
S˜ao inteiros sequenciais...
Como podemos usar isso?
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 16 / 31
La¸cos
public static void main(String[]
args) {
double area = 100;
int tipo = ALVENARIA;
System.out.println("Material
tValor");
while (tipo <= PLASTICO) {
System.out.println(tipo+
"tt"+
valorPiscina(area,tipo));
tipo = tipo+1;
}
}
public static void main(String[]
args) {
double area = 100;
int tipo = 0;
System.out.println("Material
tValor");
while (tipo <= 3) {
System.out.println(tipo+
"tt"+
valorPiscina(area,tipo));
tipo = tipo+1;
}
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 17 / 31
La¸cos
public static void main(String[]
args) {
double area = 100;
int tipo = ALVENARIA;
System.out.println("Material
tValor");
while (tipo <= PLASTICO) {
System.out.println(tipo+
"tt"+
valorPiscina(area,tipo));
tipo = tipo+1;
}
}
public static void main(String[]
args) {
double area = 100;
int tipo = 0;
System.out.println("Material
tValor");
while (tipo <= 3) {
System.out.println(tipo+
"tt"+
valorPiscina(area,tipo));
tipo = tipo+1;
}
}
Ambos s˜ao equivalentes
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 17 / 31
La¸cos
while (CONDIC¸~AO) {
//condi¸c~ao verdadeira
COMANDO1;
COMANDO2;
...
COMANDOn;
}
enquanto (CONDIC¸~AO) {
//condi¸c~ao verdadeira
COMANDO1;
COMANDO2;
...
COMANDOn;
}
While diz que enquanto a condi¸c˜ao for verdadeira, os
comandos em seu corpo ser˜ao executados
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 18 / 31
La¸cos
Inicialmente, testa a
condi¸c˜ao
Se verdadeira,
executa o corpo
Se falsa, sai do while
public static void main(String[]
args) {
double area = 100;
int tipo = ALVENARIA;
System.out.println("Material
tValor");
while (tipo <= PLASTICO) {
System.out.println(tipo+"tt"+
valorPiscina(area,tipo));
tipo = tipo+1;
}
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 19 / 31
La¸cos
Ao final do corpo,
testa novamente a
condi¸c˜ao (voltando
ao in´ıcio)
Cada vez que o
corpo ´e rodado
chama-se itera¸c˜ao
public static void main(String[]
args) {
double area = 100;
int tipo = ALVENARIA;
System.out.println("Material
tValor");
while (tipo <= PLASTICO) {
System.out.println(tipo+"tt"+
valorPiscina(area,tipo));
tipo = tipo+1;
}
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 20 / 31
La¸cos
O que acontece se
removermos a linha
tipo = tipo+1;?
public static void main(String[]
args) {
double area = 100;
int tipo = ALVENARIA;
System.out.println("Material
tValor");
while (tipo <= PLASTICO) {
System.out.println(tipo+"tt"+
valorPiscina(area,tipo));
}
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 21 / 31
La¸cos
O que acontece se
removermos a linha
tipo = tipo+1;?
A condi¸c˜ao sempre
ser´a verdadeira, tipo
sempre ser´a ≤ 3
public static void main(String[]
args) {
double area = 100;
int tipo = ALVENARIA;
System.out.println("Material
tValor");
while (tipo <= PLASTICO) {
System.out.println(tipo+"tt"+
valorPiscina(area,tipo));
}
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 21 / 31
La¸cos
O que acontece se
removermos a linha
tipo = tipo+1;?
A condi¸c˜ao sempre
ser´a verdadeira, tipo
sempre ser´a ≤ 3
La¸co (ou loop)
infinito
public static void main(String[]
args) {
double area = 100;
int tipo = ALVENARIA;
System.out.println("Material
tValor");
while (tipo <= PLASTICO) {
System.out.println(tipo+"tt"+
valorPiscina(area,tipo));
}
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 21 / 31
La¸cos
Sabendo que
PLASTICO=3, h´a
diferen¸ca entre o
c´odigo visto
anteriormente e
esse?
public static void main(String[]
args) {
double area = 100;
int tipo = ALVENARIA;
System.out.println("Material
tValor");
while (tipo <= 3) {
System.out.println(tipo+"tt"+
valorPiscina(area,tipo));
tipo = tipo+1;
}
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 22 / 31
La¸cos
Sabendo que
PLASTICO=3, h´a
diferen¸ca entre o
c´odigo visto
anteriormente e
esse?
Somente o acesso
extra a PLASTICO na
mem´oria. Contudo,
aumenta a
legibilidade
public static void main(String[]
args) {
double area = 100;
int tipo = ALVENARIA;
System.out.println("Material
tValor");
while (tipo <= 3) {
System.out.println(tipo+"tt"+
valorPiscina(area,tipo));
tipo = tipo+1;
}
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 22 / 31
While
J´a temos o or¸camento para um determinado
tamanho e v´arios materiais
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 23 / 31
While
J´a temos o or¸camento para um determinado
tamanho e v´arios materiais
Agora queremos poder comparar v´arios tamanhos
de piscina de alvenaria, fixando o material
Digamos, 50m2
, 100m2
, 150m2
e 200m2
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 23 / 31
While
J´a temos o or¸camento para um determinado
tamanho e v´arios materiais
Agora queremos poder comparar v´arios tamanhos
de piscina de alvenaria, fixando o material
Digamos, 50m2
, 100m2
, 150m2
e 200m2
Como fazer?
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 23 / 31
While
public static void main(String[] args) {
double area = 50;
int tipo = ALVENARIA;
System.out.println("´AreatValor");
while (area <= 200) {
System.out.println(area+"t"+
valorPiscina(area,tipo));
area = area+50;
}
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 24 / 31
While
public static void main(String[] args) {
double area = 50;
int tipo = ALVENARIA;
System.out.println("´AreatValor");
while (area <= 200) {
System.out.println(area+"t"+
valorPiscina(area,tipo));
area = area+50;
}
}
E a sa´ıda ´e:
´Area Valor
50.0 75000.0
100.0 150000.0
150.0 225000.0
200.0 300000.0
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 24 / 31
While
Temos ent˜ao os seguintes c´odigos:
public static void main(String[]
args) {
double area = 100;
int tipo = ALVENARIA;
System.out.println("
MaterialtValor");
while (tipo <= PLASTICO) {
System.out.println(tipo+"tt"
+valorPiscina(area,tipo));
tipo = tipo+1;
}
}
public static void main(String[]
args) {
double area = 50;
int tipo = ALVENARIA;
System.out.println("´Areat
Valor");
while (area <= 200) {
System.out.println(area+"t"
+valorPiscina(area,tipo));
area = area+50;
}
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 25 / 31
While
Como far´ıamos para
criar uma tabela que
desse o or¸camento
para piscinas de
v´arias ´areas e
materiais?
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 26 / 31
While
Como far´ıamos para
criar uma tabela que
desse o or¸camento
para piscinas de
v´arias ´areas e
materiais?
para cada uma das ´areas:
para cada um dos materiais:
diga o valor da piscina com
esta ´area, feita com este
material
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 26 / 31
While
Como far´ıamos para
criar uma tabela que
desse o or¸camento
para piscinas de
v´arias ´areas e
materiais?
para cada uma das ´areas:
para cada um dos materiais:
diga o valor da piscina com
esta ´area, feita com este
material
public static void main(String[]
args) {
double area = 50;
int tipo;
System.out.println("´AreatMaterial
tValor");
while (area <= 200) {
tipo = ALVENARIA;
while (tipo <= PLASTICO) {
System.out.println(area+"t"+
tipo+"tt"+
valorPiscina(area,tipo));
tipo = tipo+1;
}
area = area+50;
}
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 26 / 31
While
para cada uma das ´areas:
para cada um dos materiais:
diga o valor da piscina com
esta ´area, feita com este
material
public static void main(String[]
args) {
double area = 50;
int tipo;
System.out.println("´AreatMaterial
tValor");
while (area <= 200) {
tipo = ALVENARIA;
while (tipo <= PLASTICO) {
System.out.println(area+"t"+
tipo+"tt"+
valorPiscina(area,tipo));
tipo = tipo+1;
}
area = area+50;
}
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 27 / 31
While
para cada uma das ´areas:
para cada um dos materiais:
diga o valor da piscina com
esta ´area, feita com este
material
public static void main(String[]
args) {
double area = 50;
int tipo;
System.out.println("´AreatMaterial
tValor");
while (area <= 200) {
tipo = ALVENARIA;
while (tipo <= PLASTICO) {
System.out.println(area+"t"+
tipo+"tt"+
valorPiscina(area,tipo));
tipo = tipo+1;
}
area = area+50;
}
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 27 / 31
While
para cada uma das ´areas:
para cada um dos materiais:
diga o valor da piscina com
esta ´area, feita com este
material
public static void main(String[]
args) {
double area = 50;
int tipo;
System.out.println("´AreatMaterial
tValor");
while (area <= 200) {
tipo = ALVENARIA;
while (tipo <= PLASTICO) {
System.out.println(area+"t"+
tipo+"tt"+
valorPiscina(area,tipo));
tipo = tipo+1;
}
area = area+50;
}
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 27 / 31
While
La¸co while aninhado
public static void main(String[]
args) {
double area = 50;
int tipo;
System.out.println("´AreatMaterial
tValor");
while (area <= 200) {
tipo = ALVENARIA;
while (tipo <= PLASTICO) {
System.out.println(area+"t"+
tipo+"tt"+
valorPiscina(area,tipo));
tipo = tipo+1;
}
area = area+50;
}
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 28 / 31
While
La¸co while aninhado
Note que a cada
itera¸c˜ao do la¸co
externo (area),
temos que reiniciar o
la¸co interno (tipo)
public static void main(String[]
args) {
double area = 50;
int tipo;
System.out.println("´AreatMaterial
tValor");
while (area <= 200) {
tipo = ALVENARIA;
while (tipo <= PLASTICO) {
System.out.println(area+"t"+
tipo+"tt"+
valorPiscina(area,tipo));
tipo = tipo+1;
}
area = area+50;
}
}
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 28 / 31
While
public static void main(String[] args)
{
double area = 50;
int tipo=0;
System.out.println("´AreatMaterial
tValor");
while (area <= 200) {
tipo = ALVENARIA;
while (tipo <= PLASTICO) {
System.out.println(area+"t"+
tipo+"tt"+
valorPiscina(area,tipo));
tipo = tipo+1;
}
area = area+50;
}
}
´Area Material Valor
50.0 0 75000.0
50.0 1 55000.0
50.0 2 37500.0
50.0 3 25000.0
100.0 0 150000.0
100.0 1 110000.0
100.0 2 75000.0
100.0 3 50000.0
150.0 0 225000.0
150.0 1 165000.0
150.0 2 112500.0
150.0 3 75000.0
200.0 0 300000.0
200.0 1 220000.0
200.0 2 150000.0
200.0 3 100000.0
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 29 / 31
While
public static void main(String[] args)
{
double area = 50;
int tipo=0;
System.out.println("´AreatMaterial
tValor");
while (area <= 200) {
while (tipo <= PLASTICO) {
System.out.println(area+"t"+
tipo+"tt"+
valorPiscina(area,tipo));
tipo = tipo+1;
}
area = area+50;
}
}
E se removermos
tipo = ALVENARIA;?
Qual a sa´ıda?
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 30 / 31
While
public static void main(String[] args)
{
double area = 50;
int tipo=0;
System.out.println("´AreatMaterial
tValor");
while (area <= 200) {
while (tipo <= PLASTICO) {
System.out.println(area+"t"+
tipo+"tt"+
valorPiscina(area,tipo));
tipo = tipo+1;
}
area = area+50;
}
}
E se removermos
tipo = ALVENARIA;?
Qual a sa´ıda?
´Area Material Valor
50.0 0 75000.0
50.0 1 55000.0
50.0 2 37500.0
50.0 3 25000.0
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 30 / 31
Videoaula
https://www.youtube.com/watch?v=odhAEDP2ivQ
e
https://www.youtube.com/watch?v=mOrsP1-wtlM
(parcial)
Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 31 / 31

Mais conteúdo relacionado

Mais de Norton Trevisan Roman

(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 04
(ACH2044) Inteligência Artificial - Aula 04(ACH2044) Inteligência Artificial - Aula 04
(ACH2044) Inteligência Artificial - Aula 04
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 03
(ACH2044) Inteligência Artificial - Aula 03(ACH2044) Inteligência Artificial - Aula 03
(ACH2044) Inteligência Artificial - Aula 03
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 02
(ACH2044) Inteligência Artificial - Aula 02(ACH2044) Inteligência Artificial - Aula 02
(ACH2044) Inteligência Artificial - Aula 02
Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 23
(ACH2001) Introdução à Programação - Aula 23(ACH2001) Introdução à Programação - Aula 23
(ACH2001) Introdução à Programação - Aula 23
Norton Trevisan Roman
 

Mais de Norton Trevisan Roman (20)

(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20
 
(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19
 
(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18
 
(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17
 
(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16
 
(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15
 
(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14
 
(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13
 
(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12
 
(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11
 
(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10
 
(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09
 
(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08
 
(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07
 
(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06
 
(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05
 
(ACH2044) Inteligência Artificial - Aula 04
(ACH2044) Inteligência Artificial - Aula 04(ACH2044) Inteligência Artificial - Aula 04
(ACH2044) Inteligência Artificial - Aula 04
 
(ACH2044) Inteligência Artificial - Aula 03
(ACH2044) Inteligência Artificial - Aula 03(ACH2044) Inteligência Artificial - Aula 03
(ACH2044) Inteligência Artificial - Aula 03
 
(ACH2044) Inteligência Artificial - Aula 02
(ACH2044) Inteligência Artificial - Aula 02(ACH2044) Inteligência Artificial - Aula 02
(ACH2044) Inteligência Artificial - Aula 02
 
(ACH2001) Introdução à Programação - Aula 23
(ACH2001) Introdução à Programação - Aula 23(ACH2001) Introdução à Programação - Aula 23
(ACH2001) Introdução à Programação - Aula 23
 

Último

1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
LeticiaRochaCupaiol
 
Potenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números RacionaisPotenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números Racionais
wagnermorais28
 
Vogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantilVogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantil
mamaeieby
 
2020_09_17 - Biomas Mundiais [Salvo automaticamente].pptx
2020_09_17 - Biomas Mundiais [Salvo automaticamente].pptx2020_09_17 - Biomas Mundiais [Salvo automaticamente].pptx
2020_09_17 - Biomas Mundiais [Salvo automaticamente].pptx
PatriciaZanoli
 
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
YeniferGarcia36
 
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdfUFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
Manuais Formação
 
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptxSlides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
Rimas, Luís Vaz de Camões. pptx
Rimas, Luís Vaz de Camões.          pptxRimas, Luís Vaz de Camões.          pptx
Rimas, Luís Vaz de Camões. pptx
TomasSousa7
 
Reino-Vegetal plantas e demais conceitos .pptx
Reino-Vegetal plantas e demais conceitos .pptxReino-Vegetal plantas e demais conceitos .pptx
Reino-Vegetal plantas e demais conceitos .pptx
CarinaSantos916505
 
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdfA QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
AurelianoFerreirades2
 
Livro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo FreireLivro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo Freire
WelberMerlinCardoso
 
As sequências didáticas: práticas educativas
As sequências didáticas: práticas educativasAs sequências didáticas: práticas educativas
As sequências didáticas: práticas educativas
rloureiro1
 
Redação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptxRedação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptx
DECIOMAURINARAMOS
 
slides de Didática 2.pdf para apresentar
slides de Didática 2.pdf para apresentarslides de Didática 2.pdf para apresentar
slides de Didática 2.pdf para apresentar
JoeteCarvalho
 
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
LucianaCristina58
 
Educação trabalho HQ em sala de aula uma excelente ideia
Educação  trabalho HQ em sala de aula uma excelente  ideiaEducação  trabalho HQ em sala de aula uma excelente  ideia
Educação trabalho HQ em sala de aula uma excelente ideia
joseanesouza36
 
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
AntnioManuelAgdoma
 
Atividade de reforço de matemática 2º ano
Atividade de reforço de matemática 2º anoAtividade de reforço de matemática 2º ano
Atividade de reforço de matemática 2º ano
fernandacosta37763
 
D20 - Descritores SAEB de Língua Portuguesa
D20 - Descritores SAEB de Língua PortuguesaD20 - Descritores SAEB de Língua Portuguesa
D20 - Descritores SAEB de Língua Portuguesa
eaiprofpolly
 
REGULAMENTO DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
REGULAMENTO  DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...REGULAMENTO  DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
REGULAMENTO DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
Eró Cunha
 

Último (20)

1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
 
Potenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números RacionaisPotenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números Racionais
 
Vogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantilVogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantil
 
2020_09_17 - Biomas Mundiais [Salvo automaticamente].pptx
2020_09_17 - Biomas Mundiais [Salvo automaticamente].pptx2020_09_17 - Biomas Mundiais [Salvo automaticamente].pptx
2020_09_17 - Biomas Mundiais [Salvo automaticamente].pptx
 
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
 
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdfUFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
 
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptxSlides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
 
Rimas, Luís Vaz de Camões. pptx
Rimas, Luís Vaz de Camões.          pptxRimas, Luís Vaz de Camões.          pptx
Rimas, Luís Vaz de Camões. pptx
 
Reino-Vegetal plantas e demais conceitos .pptx
Reino-Vegetal plantas e demais conceitos .pptxReino-Vegetal plantas e demais conceitos .pptx
Reino-Vegetal plantas e demais conceitos .pptx
 
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdfA QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
 
Livro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo FreireLivro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo Freire
 
As sequências didáticas: práticas educativas
As sequências didáticas: práticas educativasAs sequências didáticas: práticas educativas
As sequências didáticas: práticas educativas
 
Redação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptxRedação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptx
 
slides de Didática 2.pdf para apresentar
slides de Didática 2.pdf para apresentarslides de Didática 2.pdf para apresentar
slides de Didática 2.pdf para apresentar
 
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
 
Educação trabalho HQ em sala de aula uma excelente ideia
Educação  trabalho HQ em sala de aula uma excelente  ideiaEducação  trabalho HQ em sala de aula uma excelente  ideia
Educação trabalho HQ em sala de aula uma excelente ideia
 
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
 
Atividade de reforço de matemática 2º ano
Atividade de reforço de matemática 2º anoAtividade de reforço de matemática 2º ano
Atividade de reforço de matemática 2º ano
 
D20 - Descritores SAEB de Língua Portuguesa
D20 - Descritores SAEB de Língua PortuguesaD20 - Descritores SAEB de Língua Portuguesa
D20 - Descritores SAEB de Língua Portuguesa
 
REGULAMENTO DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
REGULAMENTO  DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...REGULAMENTO  DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
REGULAMENTO DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
 

(ACH2001) Introdução à Programação - Aula 08

  • 1. Aula 08 – Condicionais e La¸cos Norton Trevisan Roman 19 de mar¸co de 2020 Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 1 / 31
  • 2. Switch Considere o c´odigo que calcula o valor da constru¸c˜ao: static double valor( double area) { if (area >= 0) return(valorM2*area); return(-1); } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 2 / 31
  • 3. Switch Considere o c´odigo que calcula o valor da constru¸c˜ao: static double valor( double area) { if (area >= 0) return(valorM2*area); return(-1); } Suponha agora que haja 4 materiais, com pre¸cos diferentes, para a piscina Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 2 / 31
  • 4. Switch Considere o c´odigo que calcula o valor da constru¸c˜ao: static double valor( double area) { if (area >= 0) return(valorM2*area); return(-1); } Suponha agora que haja 4 materiais, com pre¸cos diferentes, para a piscina Teremos que desmembrar o c´odigo, criando m´etodo apenas para a piscina. Como fazer? Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 2 / 31
  • 5. Switch static final int ALVENARIA = 0; static final int VINIL = 1; static final int FIBRA = 2; static final int PLASTICO = 3; ... static double valorPiscina(double area, int material) { double valor; if (material == ALVENARIA) valor = 1500; else if (material == VINIL) valor = 1100; else if (material == FIBRA) valor = 750; else if (material == PLASTICO) valor = 500; else valor = -1; return(area*valor); } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 3 / 31
  • 6. Switch static final int ALVENARIA = 0; static final int VINIL = 1; static final int FIBRA = 2; static final int PLASTICO = 3; ... static double valorPiscina(double area, int material) { double valor; if (material == ALVENARIA) valor = 1500; else if (material == VINIL) valor = 1100; else if (material == FIBRA) valor = 750; else if (material == PLASTICO) valor = 500; else valor = -1; return(area*valor); } Constantes tamb´em podem ser usadas para definir categorias Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 3 / 31
  • 7. Switch static final int ALVENARIA = 0; static final int VINIL = 1; static final int FIBRA = 2; static final int PLASTICO = 3; ... static double valorPiscina(double area, int material) { double valor; if (material == ALVENARIA) valor = 1500; else if (material == VINIL) valor = 1100; else if (material == FIBRA) valor = 750; else if (material == PLASTICO) valor = 500; else valor = -1; return(area*valor); } Constantes tamb´em podem ser usadas para definir categorias Deixam o c´odigo bem mais leg´ıvel Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 3 / 31
  • 8. Switch static final int ALVENARIA = 0; static final int VINIL = 1; static final int FIBRA = 2; static final int PLASTICO = 3; ... static double valorPiscina(double area, int material) { double valor; if (material == ALVENARIA) valor = 1500; else if (material == VINIL) valor = 1100; else if (material == FIBRA) valor = 750; else if (material == PLASTICO) valor = 500; else valor = -1; return(area*valor); } Constantes tamb´em podem ser usadas para definir categorias Deixam o c´odigo bem mais leg´ıvel Haveria como evitar esse aninhamento? Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 3 / 31
  • 9. Switch switch (variavel) { case valor1: c´odigo1 break; case valor2: c´odigo2 break; ... case valorn: c´odigon break; default: c´odigopadr~ao; } Correspondendo a: if (variavel == valor1) c´odigo1; else if (variavel == valor2) c´odigo2; else ... else if (variavel == valorn) c´odigon; else c´odigopadr~ao; Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 4 / 31
  • 10. Switch static final int ALVENARIA = 0; static final int VINIL = 1; static final int FIBRA = 2; static final int PLASTICO = 3; ... static double valorPiscina(double area, int material) { double valor; if (material == ALVENARIA) valor = 1500; else if (material == VINIL) valor = 1100; else if (material == FIBRA) valor = 750; else if (material == PLASTICO) valor = 500; else valor = -1; return(area*valor); } static final int ALVENARIA = 0; static final int VINIL = 1; static final int FIBRA = 2; static final int PLASTICO = 3; ... static double valorPiscina(double area, int material) { double valor; switch (material) { case ALVENARIA: valor = 1500; break; case VINIL: valor = 1100; break; case FIBRA: valor = 750; break; case PLASTICO: valor = 500; break; default: valor = -1; } return(area*valor); } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 5 / 31
  • 11. Switch Switch testa a vari´avel contra todos os valores listados static final int ALVENARIA = 0; static final int VINIL = 1; static final int FIBRA = 2; static final int PLASTICO = 3; ... static double valorPiscina(double area, int material) { double valor; switch (material) { case ALVENARIA: valor = 1500; break; case VINIL: valor = 1100; break; case FIBRA: valor = 750; break; case PLASTICO: valor = 500; break; default: valor = -1; } return(area*valor); } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 6 / 31
  • 12. Switch Switch testa a vari´avel contra todos os valores listados Se o valor dela n˜ao estiver listado, ativa o c´odigo em default static final int ALVENARIA = 0; static final int VINIL = 1; static final int FIBRA = 2; static final int PLASTICO = 3; ... static double valorPiscina(double area, int material) { double valor; switch (material) { case ALVENARIA: valor = 1500; break; case VINIL: valor = 1100; break; case FIBRA: valor = 750; break; case PLASTICO: valor = 500; break; default: valor = -1; } return(area*valor); } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 6 / 31
  • 13. Switch Switch testa a vari´avel contra todos os valores listados Se o valor dela n˜ao estiver listado, ativa o c´odigo em default default ´e opcional – se n˜ao houver, simplesmente sai do switch e continua o programa static final int ALVENARIA = 0; static final int VINIL = 1; static final int FIBRA = 2; static final int PLASTICO = 3; ... static double valorPiscina(double area, int material) { double valor; switch (material) { case ALVENARIA: valor = 1500; break; case VINIL: valor = 1100; break; case FIBRA: valor = 750; break; case PLASTICO: valor = 500; break; default: valor = -1; } return(area*valor); } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 6 / 31
  • 14. Switch E o break? static final int ALVENARIA = 0; static final int VINIL = 1; static final int FIBRA = 2; static final int PLASTICO = 3; ... static double valorPiscina(double area, int material) { double valor; switch (material) { case ALVENARIA: valor = 1500; break; case VINIL: valor = 1100; break; case FIBRA: valor = 750; break; case PLASTICO: valor = 500; break; default: valor = -1; } return(area*valor); } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 7 / 31
  • 15. Switch E o break? Faz com que o switch pare nesse ponto static final int ALVENARIA = 0; static final int VINIL = 1; static final int FIBRA = 2; static final int PLASTICO = 3; ... static double valorPiscina(double area, int material) { double valor; switch (material) { case ALVENARIA: valor = 1500; break; case VINIL: valor = 1100; break; case FIBRA: valor = 750; break; case PLASTICO: valor = 500; break; default: valor = -1; } return(area*valor); } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 7 / 31
  • 16. Switch O que acontece se tirarmos o break? ... static double valorPiscina(double area, int material) { double valor; switch (material) { case ALVENARIA: valor = 1500; case VINIL: valor = 1100; case FIBRA: valor = 750; case PLASTICO: valor = 500; default: valor = -1; } return(area*valor); } ... public static void main(String[] args) { System.out.println( valorPiscina(100,ALVENARIA)); } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 8 / 31
  • 17. Switch O que acontece se tirarmos o break? $ java AreaCasa -100.0 ... static double valorPiscina(double area, int material) { double valor; switch (material) { case ALVENARIA: valor = 1500; case VINIL: valor = 1100; case FIBRA: valor = 750; case PLASTICO: valor = 500; default: valor = -1; } return(area*valor); } ... public static void main(String[] args) { System.out.println( valorPiscina(100,ALVENARIA)); } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 8 / 31
  • 18. Switch O que acontece se tirarmos o break? $ java AreaCasa -100.0 Quando o switch come¸cou, ALVENARIA fez valor=1500 ... static double valorPiscina(double area, int material) { double valor; switch (material) { case ALVENARIA: valor = 1500; case VINIL: valor = 1100; case FIBRA: valor = 750; case PLASTICO: valor = 500; default: valor = -1; } return(area*valor); } ... public static void main(String[] args) { System.out.println( valorPiscina(100,ALVENARIA)); } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 8 / 31
  • 19. Switch Como n˜ao houve o break, ele continuou, e fez valor=1100, 750, 500 e, finalmente, -1 ... static double valorPiscina(double area, int material) { double valor; switch (material) { case ALVENARIA: valor = 1500; case VINIL: valor = 1100; case FIBRA: valor = 750; case PLASTICO: valor = 500; default: valor = -1; } return(area*valor); } ... public static void main(String[] args) { System.out.println( valorPiscina(100,ALVENARIA)); } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 9 / 31
  • 20. Switch Como n˜ao houve o break, ele continuou, e fez valor=1100, 750, 500 e, finalmente, -1 Ent˜ao pegou esse valor -1 e multiplicou por area, retornando ... static double valorPiscina(double area, int material) { double valor; switch (material) { case ALVENARIA: valor = 1500; case VINIL: valor = 1100; case FIBRA: valor = 750; case PLASTICO: valor = 500; default: valor = -1; } return(area*valor); } ... public static void main(String[] args) { System.out.println( valorPiscina(100,ALVENARIA)); } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 9 / 31
  • 21. Switch Como n˜ao houve o break, ele continuou, e fez valor=1100, 750, 500 e, finalmente, -1 Ent˜ao pegou esse valor -1 e multiplicou por area, retornando case define o ponto de entrada. S´o isso. ... static double valorPiscina(double area, int material) { double valor; switch (material) { case ALVENARIA: valor = 1500; case VINIL: valor = 1100; case FIBRA: valor = 750; case PLASTICO: valor = 500; default: valor = -1; } return(area*valor); } ... public static void main(String[] args) { System.out.println( valorPiscina(100,ALVENARIA)); } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 9 / 31
  • 22. Switch E se agora removemos o default? Note que tamb´em removemos o ´ultimo break, por ser desnecess´ario Ir´a compilar? static double valorPiscina(double area, int material) { double valor; switch (material) { case ALVENARIA: valor = 1500; break; case VINIL: valor = 1100; break; case FIBRA: valor = 750; break; case PLASTICO: valor = 500; } return(area*valor); } ... public static void main(String[] args) { System.out.println( valorPiscina(100,5)); } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 10 / 31
  • 23. Switch $ javac AreaCasa.java AreaCasa.java:85: variable valor might not have been initialized return(area*valor); ^ 1 error static double valorPiscina(double area, int material) { double valor; switch (material) { case ALVENARIA: valor = 1500; break; case VINIL: valor = 1100; break; case FIBRA: valor = 750; break; case PLASTICO: valor = 500; } return(area*valor); } ... public static void main(String[] args) { System.out.println( valorPiscina(100,5)); } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 11 / 31
  • 24. Switch $ javac AreaCasa.java AreaCasa.java:85: variable valor might not have been initialized return(area*valor); ^ 1 error O compilador n˜ao usa algo que pode n˜ao ter sido inicializado static double valorPiscina(double area, int material) { double valor; switch (material) { case ALVENARIA: valor = 1500; break; case VINIL: valor = 1100; break; case FIBRA: valor = 750; break; case PLASTICO: valor = 500; } return(area*valor); } ... public static void main(String[] args) { System.out.println( valorPiscina(100,5)); } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 11 / 31
  • 25. Switch Ent˜ao inicializemos... static double valorPiscina(double area, int material) { double valor=0; switch (material) { case ALVENARIA: valor = 1500; break; case VINIL: valor = 1100; break; case FIBRA: valor = 750; break; case PLASTICO: valor = 500; } return(area*valor); } ... public static void main(String[] args) { System.out.println( valorPiscina(100,5)); } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 12 / 31
  • 26. Switch Ent˜ao inicializemos... E agora? $ java AreaCasa 0.0 static double valorPiscina(double area, int material) { double valor=0; switch (material) { case ALVENARIA: valor = 1500; break; case VINIL: valor = 1100; break; case FIBRA: valor = 750; break; case PLASTICO: valor = 500; } return(area*valor); } ... public static void main(String[] args) { System.out.println( valorPiscina(100,5)); } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 12 / 31
  • 27. Switch Ent˜ao inicializemos... E agora? $ java AreaCasa 0.0 Um valor inv´alido deixou de ser tratado static double valorPiscina(double area, int material) { double valor=0; switch (material) { case ALVENARIA: valor = 1500; break; case VINIL: valor = 1100; break; case FIBRA: valor = 750; break; case PLASTICO: valor = 500; } return(area*valor); } ... public static void main(String[] args) { System.out.println( valorPiscina(100,5)); } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 12 / 31
  • 28. Switch static double valorPiscina(double area, int material) { double valor; switch (material) { case ALVENARIA: valor = 1500; break; case VINIL: valor = 1100; break; case FIBRA: valor = 750; break; case PLASTICO: valor = 500; break; default: valor = -1; } return(area*valor); } Daria para enxugar o c´odigo, dado que h´a uma escolha e um retorno? Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 13 / 31
  • 29. Switch static double valorPiscina(double area, int material) { double valor; switch (material) { case ALVENARIA: valor = 1500; break; case VINIL: valor = 1100; break; case FIBRA: valor = 750; break; case PLASTICO: valor = 500; break; default: valor = -1; } return(area*valor); } Daria para enxugar o c´odigo, dado que h´a uma escolha e um retorno? static double valorPiscina(double area, int material) { switch (material) { case ALVENARIA: return(area*1500); case VINIL: return(area*1100); case FIBRA: return(area*750); case PLASTICO: return(area*500); default: return(-1); } } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 13 / 31
  • 30. La¸cos Queremos agora comparar o valor de uma piscina de 100m2 , para cada material Como far´ıamos? Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 14 / 31
  • 31. La¸cos Queremos agora comparar o valor de uma piscina de 100m2 , para cada material Como far´ıamos? Primeira tentativa: public static void main(String[] args) { double area = 100; System.out.println("Materialt Valor"); System.out.println(ALVENARIA+ "tt"+ valorPiscina(area,ALVENARIA)); System.out.println(VINIL+"tt"+ valorPiscina(area,VINIL)); System.out.println(FIBRA+"tt"+ valorPiscina(area,FIBRA)); System.out.println(PLASTICO+"tt" +valorPiscina(area,PLASTICO)); } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 14 / 31
  • 32. La¸cos t – tabula¸c˜ao E qual a sa´ıda? Material Valor 0 150000.0 1 110000.0 2 75000.0 3 50000.0 public static void main(String[] args) { double area = 100; System.out.println("Materialt Valor"); System.out.println(ALVENARIA+ "tt"+ valorPiscina(area,ALVENARIA)); System.out.println(VINIL+"tt"+ valorPiscina(area,VINIL)); System.out.println(FIBRA+"tt"+ valorPiscina(area,FIBRA)); System.out.println(PLASTICO+"tt" +valorPiscina(area,PLASTICO)); } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 15 / 31
  • 33. La¸cos t – tabula¸c˜ao E qual a sa´ıda? Material Valor 0 150000.0 1 110000.0 2 75000.0 3 50000.0 Com 4 tipos foi f´acil... public static void main(String[] args) { double area = 100; System.out.println("Materialt Valor"); System.out.println(ALVENARIA+ "tt"+ valorPiscina(area,ALVENARIA)); System.out.println(VINIL+"tt"+ valorPiscina(area,VINIL)); System.out.println(FIBRA+"tt"+ valorPiscina(area,FIBRA)); System.out.println(PLASTICO+"tt" +valorPiscina(area,PLASTICO)); } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 15 / 31
  • 34. La¸cos E se tiv´essemos 20 tipos diferentes de materiais? Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 16 / 31
  • 35. La¸cos E se tiv´essemos 20 tipos diferentes de materiais? Repare nos valores dos tipos de material para a piscina: static final int ALVENARIA = 0; static final int VINIL = 1; static final int FIBRA = 2; static final int PLASTICO = 3; Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 16 / 31
  • 36. La¸cos E se tiv´essemos 20 tipos diferentes de materiais? Repare nos valores dos tipos de material para a piscina: static final int ALVENARIA = 0; static final int VINIL = 1; static final int FIBRA = 2; static final int PLASTICO = 3; S˜ao inteiros sequenciais... Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 16 / 31
  • 37. La¸cos E se tiv´essemos 20 tipos diferentes de materiais? Repare nos valores dos tipos de material para a piscina: static final int ALVENARIA = 0; static final int VINIL = 1; static final int FIBRA = 2; static final int PLASTICO = 3; S˜ao inteiros sequenciais... Como podemos usar isso? Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 16 / 31
  • 38. La¸cos public static void main(String[] args) { double area = 100; int tipo = ALVENARIA; System.out.println("Material tValor"); while (tipo <= PLASTICO) { System.out.println(tipo+ "tt"+ valorPiscina(area,tipo)); tipo = tipo+1; } } public static void main(String[] args) { double area = 100; int tipo = 0; System.out.println("Material tValor"); while (tipo <= 3) { System.out.println(tipo+ "tt"+ valorPiscina(area,tipo)); tipo = tipo+1; } } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 17 / 31
  • 39. La¸cos public static void main(String[] args) { double area = 100; int tipo = ALVENARIA; System.out.println("Material tValor"); while (tipo <= PLASTICO) { System.out.println(tipo+ "tt"+ valorPiscina(area,tipo)); tipo = tipo+1; } } public static void main(String[] args) { double area = 100; int tipo = 0; System.out.println("Material tValor"); while (tipo <= 3) { System.out.println(tipo+ "tt"+ valorPiscina(area,tipo)); tipo = tipo+1; } } Ambos s˜ao equivalentes Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 17 / 31
  • 40. La¸cos while (CONDIC¸~AO) { //condi¸c~ao verdadeira COMANDO1; COMANDO2; ... COMANDOn; } enquanto (CONDIC¸~AO) { //condi¸c~ao verdadeira COMANDO1; COMANDO2; ... COMANDOn; } While diz que enquanto a condi¸c˜ao for verdadeira, os comandos em seu corpo ser˜ao executados Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 18 / 31
  • 41. La¸cos Inicialmente, testa a condi¸c˜ao Se verdadeira, executa o corpo Se falsa, sai do while public static void main(String[] args) { double area = 100; int tipo = ALVENARIA; System.out.println("Material tValor"); while (tipo <= PLASTICO) { System.out.println(tipo+"tt"+ valorPiscina(area,tipo)); tipo = tipo+1; } } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 19 / 31
  • 42. La¸cos Ao final do corpo, testa novamente a condi¸c˜ao (voltando ao in´ıcio) Cada vez que o corpo ´e rodado chama-se itera¸c˜ao public static void main(String[] args) { double area = 100; int tipo = ALVENARIA; System.out.println("Material tValor"); while (tipo <= PLASTICO) { System.out.println(tipo+"tt"+ valorPiscina(area,tipo)); tipo = tipo+1; } } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 20 / 31
  • 43. La¸cos O que acontece se removermos a linha tipo = tipo+1;? public static void main(String[] args) { double area = 100; int tipo = ALVENARIA; System.out.println("Material tValor"); while (tipo <= PLASTICO) { System.out.println(tipo+"tt"+ valorPiscina(area,tipo)); } } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 21 / 31
  • 44. La¸cos O que acontece se removermos a linha tipo = tipo+1;? A condi¸c˜ao sempre ser´a verdadeira, tipo sempre ser´a ≤ 3 public static void main(String[] args) { double area = 100; int tipo = ALVENARIA; System.out.println("Material tValor"); while (tipo <= PLASTICO) { System.out.println(tipo+"tt"+ valorPiscina(area,tipo)); } } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 21 / 31
  • 45. La¸cos O que acontece se removermos a linha tipo = tipo+1;? A condi¸c˜ao sempre ser´a verdadeira, tipo sempre ser´a ≤ 3 La¸co (ou loop) infinito public static void main(String[] args) { double area = 100; int tipo = ALVENARIA; System.out.println("Material tValor"); while (tipo <= PLASTICO) { System.out.println(tipo+"tt"+ valorPiscina(area,tipo)); } } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 21 / 31
  • 46. La¸cos Sabendo que PLASTICO=3, h´a diferen¸ca entre o c´odigo visto anteriormente e esse? public static void main(String[] args) { double area = 100; int tipo = ALVENARIA; System.out.println("Material tValor"); while (tipo <= 3) { System.out.println(tipo+"tt"+ valorPiscina(area,tipo)); tipo = tipo+1; } } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 22 / 31
  • 47. La¸cos Sabendo que PLASTICO=3, h´a diferen¸ca entre o c´odigo visto anteriormente e esse? Somente o acesso extra a PLASTICO na mem´oria. Contudo, aumenta a legibilidade public static void main(String[] args) { double area = 100; int tipo = ALVENARIA; System.out.println("Material tValor"); while (tipo <= 3) { System.out.println(tipo+"tt"+ valorPiscina(area,tipo)); tipo = tipo+1; } } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 22 / 31
  • 48. While J´a temos o or¸camento para um determinado tamanho e v´arios materiais Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 23 / 31
  • 49. While J´a temos o or¸camento para um determinado tamanho e v´arios materiais Agora queremos poder comparar v´arios tamanhos de piscina de alvenaria, fixando o material Digamos, 50m2 , 100m2 , 150m2 e 200m2 Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 23 / 31
  • 50. While J´a temos o or¸camento para um determinado tamanho e v´arios materiais Agora queremos poder comparar v´arios tamanhos de piscina de alvenaria, fixando o material Digamos, 50m2 , 100m2 , 150m2 e 200m2 Como fazer? Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 23 / 31
  • 51. While public static void main(String[] args) { double area = 50; int tipo = ALVENARIA; System.out.println("´AreatValor"); while (area <= 200) { System.out.println(area+"t"+ valorPiscina(area,tipo)); area = area+50; } } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 24 / 31
  • 52. While public static void main(String[] args) { double area = 50; int tipo = ALVENARIA; System.out.println("´AreatValor"); while (area <= 200) { System.out.println(area+"t"+ valorPiscina(area,tipo)); area = area+50; } } E a sa´ıda ´e: ´Area Valor 50.0 75000.0 100.0 150000.0 150.0 225000.0 200.0 300000.0 Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 24 / 31
  • 53. While Temos ent˜ao os seguintes c´odigos: public static void main(String[] args) { double area = 100; int tipo = ALVENARIA; System.out.println(" MaterialtValor"); while (tipo <= PLASTICO) { System.out.println(tipo+"tt" +valorPiscina(area,tipo)); tipo = tipo+1; } } public static void main(String[] args) { double area = 50; int tipo = ALVENARIA; System.out.println("´Areat Valor"); while (area <= 200) { System.out.println(area+"t" +valorPiscina(area,tipo)); area = area+50; } } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 25 / 31
  • 54. While Como far´ıamos para criar uma tabela que desse o or¸camento para piscinas de v´arias ´areas e materiais? Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 26 / 31
  • 55. While Como far´ıamos para criar uma tabela que desse o or¸camento para piscinas de v´arias ´areas e materiais? para cada uma das ´areas: para cada um dos materiais: diga o valor da piscina com esta ´area, feita com este material Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 26 / 31
  • 56. While Como far´ıamos para criar uma tabela que desse o or¸camento para piscinas de v´arias ´areas e materiais? para cada uma das ´areas: para cada um dos materiais: diga o valor da piscina com esta ´area, feita com este material public static void main(String[] args) { double area = 50; int tipo; System.out.println("´AreatMaterial tValor"); while (area <= 200) { tipo = ALVENARIA; while (tipo <= PLASTICO) { System.out.println(area+"t"+ tipo+"tt"+ valorPiscina(area,tipo)); tipo = tipo+1; } area = area+50; } } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 26 / 31
  • 57. While para cada uma das ´areas: para cada um dos materiais: diga o valor da piscina com esta ´area, feita com este material public static void main(String[] args) { double area = 50; int tipo; System.out.println("´AreatMaterial tValor"); while (area <= 200) { tipo = ALVENARIA; while (tipo <= PLASTICO) { System.out.println(area+"t"+ tipo+"tt"+ valorPiscina(area,tipo)); tipo = tipo+1; } area = area+50; } } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 27 / 31
  • 58. While para cada uma das ´areas: para cada um dos materiais: diga o valor da piscina com esta ´area, feita com este material public static void main(String[] args) { double area = 50; int tipo; System.out.println("´AreatMaterial tValor"); while (area <= 200) { tipo = ALVENARIA; while (tipo <= PLASTICO) { System.out.println(area+"t"+ tipo+"tt"+ valorPiscina(area,tipo)); tipo = tipo+1; } area = area+50; } } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 27 / 31
  • 59. While para cada uma das ´areas: para cada um dos materiais: diga o valor da piscina com esta ´area, feita com este material public static void main(String[] args) { double area = 50; int tipo; System.out.println("´AreatMaterial tValor"); while (area <= 200) { tipo = ALVENARIA; while (tipo <= PLASTICO) { System.out.println(area+"t"+ tipo+"tt"+ valorPiscina(area,tipo)); tipo = tipo+1; } area = area+50; } } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 27 / 31
  • 60. While La¸co while aninhado public static void main(String[] args) { double area = 50; int tipo; System.out.println("´AreatMaterial tValor"); while (area <= 200) { tipo = ALVENARIA; while (tipo <= PLASTICO) { System.out.println(area+"t"+ tipo+"tt"+ valorPiscina(area,tipo)); tipo = tipo+1; } area = area+50; } } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 28 / 31
  • 61. While La¸co while aninhado Note que a cada itera¸c˜ao do la¸co externo (area), temos que reiniciar o la¸co interno (tipo) public static void main(String[] args) { double area = 50; int tipo; System.out.println("´AreatMaterial tValor"); while (area <= 200) { tipo = ALVENARIA; while (tipo <= PLASTICO) { System.out.println(area+"t"+ tipo+"tt"+ valorPiscina(area,tipo)); tipo = tipo+1; } area = area+50; } } Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 28 / 31
  • 62. While public static void main(String[] args) { double area = 50; int tipo=0; System.out.println("´AreatMaterial tValor"); while (area <= 200) { tipo = ALVENARIA; while (tipo <= PLASTICO) { System.out.println(area+"t"+ tipo+"tt"+ valorPiscina(area,tipo)); tipo = tipo+1; } area = area+50; } } ´Area Material Valor 50.0 0 75000.0 50.0 1 55000.0 50.0 2 37500.0 50.0 3 25000.0 100.0 0 150000.0 100.0 1 110000.0 100.0 2 75000.0 100.0 3 50000.0 150.0 0 225000.0 150.0 1 165000.0 150.0 2 112500.0 150.0 3 75000.0 200.0 0 300000.0 200.0 1 220000.0 200.0 2 150000.0 200.0 3 100000.0 Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 29 / 31
  • 63. While public static void main(String[] args) { double area = 50; int tipo=0; System.out.println("´AreatMaterial tValor"); while (area <= 200) { while (tipo <= PLASTICO) { System.out.println(area+"t"+ tipo+"tt"+ valorPiscina(area,tipo)); tipo = tipo+1; } area = area+50; } } E se removermos tipo = ALVENARIA;? Qual a sa´ıda? Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 30 / 31
  • 64. While public static void main(String[] args) { double area = 50; int tipo=0; System.out.println("´AreatMaterial tValor"); while (area <= 200) { while (tipo <= PLASTICO) { System.out.println(area+"t"+ tipo+"tt"+ valorPiscina(area,tipo)); tipo = tipo+1; } area = area+50; } } E se removermos tipo = ALVENARIA;? Qual a sa´ıda? ´Area Material Valor 50.0 0 75000.0 50.0 1 55000.0 50.0 2 37500.0 50.0 3 25000.0 Norton Trevisan Roman Aula 08 – Condicionais e La¸cos 19 de mar¸co de 2020 30 / 31