Um while loop que ta a repetir uma println 2 vezes e não é suposto
2 respostas
G
gaspar247
Olá a todos gostaria que alguem me esclarecesse por que é que a println que vou por a negrito está a repetir duas vezes na consola. Eu quero que esta mesma println apareça sempre que a açcão anterior esteja concluida.
[/code]
import java.util.Scanner;
public class Mercearia {
int alfaces;
int couves;
int tomates;
static String escolha;
int quantia;
public static void main(String [] args){
int alfaces=100;
int couves=200;
int tomates=300;
Scanner input = new Scanner(System.in);
while(escolha!="exit"){ System.out.println("O que quer comprar? couves, tomates ou alfaces? Se quiser saber as quantias dos produtos disponiveis no stock escreva: Stock.");
String escolha = input.nextLine();
Olá a todos gostaria que alguem me esclarecesse por que é que a println que vou por a negrito está a repetir duas vezes na consola. Eu quero que esta mesma println apareça sempre que a açcão anterior esteja concluida.
importjava.util.Scanner;publicclassMercearia{intalfaces;intcouves;inttomates;staticStringescolha;intquantia;publicstaticvoidmain(String[]args){intalfaces=100;intcouves=200;inttomates=300;Scannerinput=newScanner(System.in);while(escolha!="exit"){[b]System.out.println("O que quer comprar? couves, tomates ou alfaces? Se quiser saber as quantias dos produtos disponiveis no stock escreva: Stock.");[/b]Stringescolha=input.nextLine();if(escolha.equalsIgnoreCase("tomates")){System.out.println("Quantos quer comprar?");intquantia=input.nextInt();tomates=tomates-quantia;System.out.println("Você comprou "+quantia+" tomates. Restam "+tomates+" tomates no stock.");}elseif(escolha.equalsIgnoreCase("couves")){System.out.println("Quantas quer comprar?");intquantia=input.nextInt();couves=couves-quantia;System.out.println("Você comprou "+quantia+" couves. Restam "+couves+" couves no stock.");}elseif(escolha.equalsIgnoreCase("alfaces")){System.out.println("Quantas quer comprar?");intquantia=input.nextInt();alfaces=alfaces-quantia;System.out.println("Você comprou "+quantia+" alfaces. Restam "+alfaces+" alfaces no stock.");}elseif(escolha.equalsIgnoreCase("Stock")){System.out.println("Estão disponiveis "+tomates+" tomates,"+alfaces+" alfaces, "+couves+" couves.");}}}}
importjava.util.Scanner;publicclassMercearia{staticbooleancontrole=true;staticintalfaces=100;staticintcouves=200;staticinttomates=300;staticintquantia=0;staticStringescolha;staticScannerinput=newScanner(System.in);publicstaticvoidmain(String[]args){while(controle){System.out.println("O que quer comprar? couves, tomates ou alfaces?"+" Se quiser saber as quantias dos produtos disponiveis no stock escreva: Stock.");// só usei o next ao invés do nextLine e não fez 2x a pergunta já que as // Strings desse código não necessitam de espaçosescolha=input.next();if(escolha.equalsIgnoreCase("exit")){System.out.println("Compra Finalizada! Volte Sempre!");controle=false;}else{escolheu(escolha);}}}publicstaticvoidescolheu(Stringescolha){if(escolha.equalsIgnoreCase("tomates")){System.out.println("Quantos quer comprar?");quantia=input.nextInt();tomates=tomates-quantia;System.out.println("Você comprou "+quantia+" tomates. Restam "+tomates+" tomates no stock.");}elseif(escolha.equalsIgnoreCase("couves")){System.out.println("Quantas quer comprar?");quantia=input.nextInt();couves=couves-quantia;System.out.println("Você comprou "+quantia+" couves. Restam "+couves+" couves no stock.");}elseif(escolha.equalsIgnoreCase("alfaces")){System.out.println("Quantas quer comprar?");quantia=input.nextInt();alfaces=alfaces-quantia;System.out.println("Você comprou "+quantia+" alfaces. Restam "+alfaces+" alfaces no stock.");}elseif(escolha.equalsIgnoreCase("Stock")){System.out.println("Estão disponiveis "+tomates+" tomates,"+alfaces+" alfaces, "+couves+" couves.");}}// camarada só falta você criar um método para controlar a quantidade de produtos,// pois nesse seu código se eu quiser comprar mais do que Stock é possível, aviso,// atenção ao postar seu código entre os blocos 'code e /code' para não ficar essa// bagunça aí, que por este motivo, talvez a galera nem vai olhar para ajudar// E NÃO DESISTA NUNCA, POIS, O GUJ ESTÁ AÍ PARA AJUDAR!}
G
gaspar247
Muito obrigado pela resposta, começo a sofrer porque sei que faço sempre os códigos mais extensos do que realmente precisam ser. Mas consegui com a sua resposta aprender mais alguma coisinha, acerca do que introduzir no main method, e dps chamar os “secundarios”. Mas isto desmotiva tanto, mas vou tentar não desistir! :lol: