Dúvida entrada de dados e armazenar numa variável char
9 respostas
lukas.nny
Implementei o código abaixo:
import java.util.Scanner;
public class AgenciaAutomoveis {
// programa que leia os dados de 100 carros:// 1 - a marca do carro; 2 - o preco do carro// programa que imprima// 1 - porcentagem de carros da marca 1// menor preco de um automovelpublicstaticvoidmain(String[]args){// declaracao de variaveisintpreco=0;charmarca;intcontadorfiat;intcontadorgeral;// instancia de entrada de dados via usuarioScannerentrada=newScanner(System.in);for(inti=0;i<=3;i++){// entrada de dadosSystem.out.println("Qual a marca do carro? (FIAT, VOLKSVAGEN, OUTRA)");marca=entrada.next().charAt(0);System.out.println("Qual o preco do carro?");preco=entrada.nextInt();// logicas de if(marca=='FIAT'&marca=='fiat'){// *}
}
}
}
No entando, em * o eclipse acusa o erro de que a variavel “marca” jamais foi lida.
Creio que construí as logicas de entrada de maneira correta.
Amigo, da proxima vez use a tag [code] para postar o código.. pois fica horrivel a visualização..
FredericoGenovez
Sim, mas você inicializou a váriavel dentro de um bloco for, e a jvm não pode garantir que ele será executado pois se você colocar de 0 até 0 ele não será executado e nesse caso como ela sabe da possibilidade de a variavel não ter valor algum ela te avisa então inicie a variavel com um caracter qualquer(mas lembre que ‘’ - vazio, não é um caracter), pra propriedades da classe esse erro não aconteceria, mas você vai ter mais erros ai pois ‘Fiat’ não é um caracter, são varios então você deve usar o uma referência da classe String e comparar com o equals() :), estou estudando java e uma apostila que me ajudou muito foi a da Caelum http://www.caelum.com.br/apostilas/.
gustavocoolt
É bem isso que o FredericoGenovez disse…
Porque esta utilizando o tipo char?
Substitua-o por String, e o seu if ficara assim:
if("fiat".equals(marca.toLowerCase())){
}
FredericoGenovez
É, ahco que suas alternativas são a que o gustavocoolt disse, e também como você está pegando o char na primeira posição
marca=entrada.next().charAt(0);
No trecho que você faz a verificação você pode verificar com um char, mas se você tiver duas alternativas que começam com a mesma letra você vai ter um erro de lógica.
if(marca=='F'){//SouumfiatporquecomeçocomF
}
lukas.nny
se eu criar uma variavel do tipo string, posso realizar tal procedimento?
isto é, comparar:
if marca == ‘fiat’ || marca == ‘FIAT’
?
nesse caso, como eu crio essa variavel string e se há necessidade de uma atribuição antes do for.
obg
FredericoGenovez
Você cria uma referência da classe String e coloca em uma váriavel assim:
Stringmarca=newString();
Deste modo você não precisa atribuir um valor pois você já atribuiu a referência, mas para comparar duas Strings você deve usar o método ‘equals’ que compara o valor das Strings e não o operador ‘==’ que compara se elas são iguais na memória faça assim:
if(marca.equals("fiat"))
Você pode usar o metódo toLowerCase() para transformar tanto a String recebida em uma String com todas as letras minusculas pois Fiat não é igual à FiAt, faça assim:
if(marca.toLowerCase().equals("fiat"))
lukas.nny
Qual o problema com esse código?
Ele está retornando porcentagem = 0 e não retorna o valor do menor preco
importjava.util.Scanner;publicclassAgenciaAutomoveis{// programa que leia os dados de 100 carros:// 1 - a marca do carro; 2 - o preco do carro// programa que imprima// 1 - porcentagem de carros da marca 1// menor preco de um automovelpublicstaticvoidmain(String[]args){// declaracao de variaveisintpreco=0;intmarca;intcontadorfiat=0;intcontadorgeral=0;floatporcentagem=0;intmenorpreco=999999;// instancia de entrada de dados via usuarioScannerentrada=newScanner(System.in);for(inti=0;i<3;i++){// entrada de dadosSystem.out.print("Qual a marca do carro? (1-FIAT, 2-VOLKSVAGEN, 3-OUTRA) ");marca=entrada.nextInt();System.out.print("Qual o preco do carro? ");preco=entrada.nextInt();// logicas de processamentoif(marca==1){contadorfiat=contadorfiat++;}if((preco<=menorpreco)&&(marca==2)){menorpreco=preco;}contadorgeral=contadorgeral+1;}// logicas de impressaoSystem.out.println(" ");// porcentagemporcentagem=(((contadorfiat/contadorgeral)*100));System.out.println("Porcentagem de carros fiat é "+porcentagem);//menor precoSystem.out.println("Menor preço de carros da Volkswagem é "+menorpreco);}}
FredericoGenovez
Foi um ero na sua conta… olhe no meu como funciona e analise como fiz o cálculo usando regra de 3…
importjava.util.Scanner;publicclassAgencia{publicstaticvoidmain(String[]args){intpreco=0;intmarca;intcontadorfiat=0;intcontadorgeral=0;floatporcentagem=0;intmenorpreco=999999;Scannerentrada=newScanner(System.in);for(inti=0;i<3;i++){System.out.print("Qual a marca do carro? (1-FIAT, 2-VOLKSVAGEN, 3-OUTRA) ");marca=entrada.nextInt();System.out.print("Qual o preco do carro? ");preco=entrada.nextInt();if(marca==1){contadorfiat++;}if((preco<=menorpreco)&&(marca==2)){menorpreco=preco;}contadorgeral++;}System.out.println(" ");porcentagem=((contadorfiat*100)/contadorgeral);System.out.println("Porcentagem de carros fiat é "+porcentagem);System.out.println("Menor preço de carros da Volkswagem é "+menorpreco);}}
lukas.nny
obg a todos que ajudaram, consegui implementar o codigo. está rodando ok. grato
importjava.util.Scanner;publicclassAgenciaAutomoveis{// programa que leia os dados de 100 carros:// 1 - a marca do carro; 2 - o preco do carro// programa que imprima// total arrecadado com vendas de carros da volkswagen// porcentagem de carros da fiat// menor preco de um automovel de uma outra marcapublicstaticvoidmain(String[]args){// declaracao de variaveisintcontrole=0;intpreco=0;intmarca;intmenor=0;intsoma=0;intcontadorfiat=0;intcontadorvolkswagen=0;floatporcentagem=0;intmenorpreco=999999;// instancia de entrada de dados via usuarioScannerentrada=newScanner(System.in);System.out.print("Quantos carros serão vendidos? ");controle=entrada.nextInt();for(inti=1;i<=controle;i++){// entrada de dadosSystem.out.print("Qual a marca do carro? (1-FIAT, 2-VOLKSVAGEN, 3-OUTRA) ");marca=entrada.nextInt();System.out.print("Qual o preco do carro? ");preco=entrada.nextInt();if(marca==2){soma=soma+preco;contadorvolkswagen=contadorvolkswagen+1;}if(marca==1){contadorfiat=contadorfiat+1;}if((preco<menor)&&(marca==3)){menor=preco;}}// logicas de impressaoSystem.out.println(" ");// arrecadacao com carros da volkswagen System.out.println("Foram vendidos "+contadorvolkswagen+" carros da volkswagen"+" e arrecadou-se "+soma+" $ na venda desses");// porcentagemporcentagem=(((contadorfiat*100)/controle));System.out.println("Porcentagem de carros vendidos da fiat é "+porcentagem);//menor precoSystem.out.println("Menor preço de carros da outra marca "+menorpreco);}}