Galera sou iniciante em java e me deparei com um probleminha, googlei, mas não encontrei a resposta.
Estou resolvendo esse exercicio:
Crie um programa em Java que leia um valor de temperatura da cor de uma lâmpada em Kelvin. Feito isto, informe ao usuário a cor correspondente a esta lâmpada.
de 0 a 1000 – Vermelho Intenso
de 1001 a 2000 – Luz de Velas
de 2001 a 4000 – Por do sol
o problema no meu codigo e que nao sei como ficar entre as datas:
public static void main(String[] args) {
System.out.println("Digite um valor de temperatura da cor de uma lâmpada em Kelvin, de 0 até 9600: ");
Scanner dados = new Scanner(System.in);
double num = dados.nextInt();
if(num == 0 ||(num<=1000) ){
System.out.println("Essa é a cor: vermelho intenso!");
}else if(num == 1001 ||(num>=2000) ){
System.out.println("Essa é a cor: Luz de velas!");
}else if(num == 2001 ||(num>=4000) ){
System.out.println("Essa é a cor: POr do sol!");
}else if(num == 4001 ||(num>=5000) ){
System.out.println("Essa é a cor: lâmpada Fluorescente!");
}else if(num == 5001 ||(num>=6500) ){
System.out.println("Essa é a cor: Luz do meio dia!");
}else if(num == 6501 ||(num>=8000) ){
System.out.println("Essa é a cor: Céu azul!");
}else{
System.out.println("Valor Invalido!!");
}
Aparece sempre a primeira, como posso realizar esse espaçamento entre dados?
Olá Carlos. Existe alguns erros no seu código. Vamos lá. Você começou e terminou seu código com as condições contendo os operadores de (== igual) , (| | ou) e em seguida usou (>= maior ou igual), onde na verdade o correto é usar da seguinte forma;
if(num > 0 && num <=1000) {
nesse caso estamos dizendo que a condição é que SE o número for MAIOR que 0 (&& -> E) MENOR OU IGUAL a 1000. veja que usamos o && e não o | | (ou)…
Isso serve pra todas as outras condições…
E mais uma coisa, nesse caso você poderia usar INT , não seria necessário DOUBLE.
abaixo está o código correto, só faltou mais atenção.
System.out.println("Digite um valor de temperatura da cor de uma lâmpada em Kelvin, de 0 até 9600: ");
Scanner dados = new Scanner(System.in);
int num = dados.nextInt();
if(num > 0 && num <= 1000 ){
System.out.println("Essa é a cor: vermelho intenso!");
}else if(num > 1000 && num <= 2000 ){
System.out.println("Essa é a cor: Luz de velas!");
}else if(num > 2000 && num <= 4000 ){
System.out.println("Essa é a cor: POr do sol!");
}else if(num > 4000 && num <= 5000 ){
System.out.println("Essa é a cor: lâmpada Fluorescente!");
}else if(num > 5000 && num <= 6500 ){
System.out.println("Essa é a cor: Luz do meio dia!");
}else if(num > 6500 && num<=8000 ){
System.out.println("Essa é a cor: Céu azul!");
}else{
System.out.println("Valor Invalido!!");
Aproveitando o exemplo que o @Emanuel_Vitor deu, daria pra simplificar ainda mais as condições, veja:
if (num <= 1000) {
System.out.println("Essa é a cor: vermelho intenso!");
} else if (num <= 2000) {
System.out.println("Essa é a cor: Luz de velas!");
} else if (num <= 4000) {
System.out.println("Essa é a cor: POr do sol!");
} else if (num <= 5000) {
System.out.println("Essa é a cor: lâmpada Fluorescente!");
} else if (num <= 6500) {
System.out.println("Essa é a cor: Luz do meio dia!");
} else if (num <= 8000) {
System.out.println("Essa é a cor: Céu azul!");
} else {
System.out.println("Valor Invalido!!");
}