Galera coloquei a condição no for para que quando o usuário digitar algo diferente de (s/S) o for termine, mas isso não esta acontecendo.
Tem outra dúvida também, esta está no código.
Quem puder me ajudar eu agradeço
packageQuestao20;importjava.util.*;publicclassresp{/** * @param args */publicstaticvoidmain(String[]args){Scannerler=newScanner(System.in);shortcarAno;doublecarTotal=0,carValor;bytecar2k=0,carGeral=0;Stringresp="s";for(resp.equalsIgnoreCase("s");;){System.out.println("Informe o valor do veículo");carValor=ler.nextDouble();System.out.println("Informe o ano do veículo");carAno=ler.nextShort();if(carAno<=2000){carTotal=(carValor-(carValor*0.12));car2k++;carGeral++;}if(carAno>2000){carTotal=(carValor-(carValor*0.07));carGeral++;}System.out.println(">> Desconto: "+(carValor-carTotal)+"\n>> Valor a ser pago: "+carTotal);System.out.println("Deseja continuar calculando?(S/N)");resp=ler.next();}System.out.println(carGeral);// nessa linha aqui aparece um erro dizendo "Unreachable code"System.out.println(car2k);// e seu eu passa essa pra cima o erro pra para essa}}
A condição de parada não é o segundo parâmetro do for?
sugestão: use um while, cara. Fica bem mais legívelwhile(resp.equalsIgnoreCase("s")){
//implementação
}
InicianteJavaHenriqu
Ou do while para o usuário digitar pelo menos uma vez.
:thumbup:
JuniorMaia
importjava.util.Scanner;publicclassresp{/** * @param args */publicstaticvoidmain(String[]args){Scannerler=newScanner(System.in);shortcarAno;doublecarTotal=0,carValor;bytecar2k=0,carGeral=0;Stringresp="s";while(resp.equalsIgnoreCase("s")){System.out.println("Informe o valor do veículo");carValor=ler.nextDouble();System.out.println("Informe o ano do veículo");carAno=ler.nextShort();if(carAno<=2000){carTotal=(carValor-(carValor*0.12));car2k++;carGeral++;}if(carAno>2000){carTotal=(carValor-(carValor*0.07));carGeral++;}System.out.println(">> Desconto: "+(carValor-carTotal)+"\n>> Valor a ser pago: "+carTotal);System.out.println("Deseja continuar calculando?(S/N)");resp=ler.next();}System.out.println(carGeral);System.out.println(car2k);}}
o erro da saída se resolveu usando while ;}
M
Miguelrsn
publicstaticvoidmain(String[]args){Scannerler=newScanner(System.in);shortcarAno;doublecarTotal=0,carValor;bytecar2k=0,carGeral=0;Stringresp="s";while(resp.equalsIgnoreCase("s")){System.out.println("Informe o valor do veículo");carValor=ler.nextDouble();System.out.println("Informe o ano do veículo");carAno=ler.nextShort();if(carAno<=2000){carTotal=(carValor-(carValor*0.12));car2k++;carGeral++;}if(carAno>2000){carTotal=(carValor-(carValor*0.07));carGeral++;}System.out.println(">> Desconto: "+(carValor-carTotal)+"\n>> Valor a ser pago: "+carTotal);System.out.println("Deseja continuar calculando?(S/N)");resp=ler.next();}System.out.println("Carros com ano até 2000 vendidos: "+car2k);System.out.println("Total geral de carros vendidos: "+carGeral);}
Rodou do jeito que eu queria, muito obrigado ;)
uhum, se corrigiu mesmo JuniorMaia, obrigado ^^
Obrigado também ao InicianteJavaHenrique ^^
JuniorMaia
disponha ;}
lucaslzl
O comando de repetição “For” pode ser usado como “While”. O seu erro foi na ordem das informações.
Em um “For” coloca-se ( inicialização da variavel (int i = 0, por exemplo); condição para repetição (resp.equalsIgnoreCase(“s”), no seu caso); incrementação (i++ ou algo do tipo).
Você colocou (resp.equalsIgnoreCase(“s”) ;;), deveria ter colocado (; resp.equalsIgnoreCase(“s”);