Ativade Java Deitel 2

Exercicio 5.17 (Um varejista online vende cinco produtos cujos preços no varejo são como a seguir: produto 1, US$ 2,98; produto 2, US$ 4,50;
produto 3, US$ 9,98; produto 4, US$ 4,49; e produto 5, US$ 6,87. Escreva um aplicativo que leia uma série de pares de números como segue:
a) número de produto.
b) quantidade vendida.
Seu programa deve utilizar uma instrução switch para determinar o preço de varejo de cada produto. Você deve calcular e exibir o valor de varejo
total de todos os produtos vendidos. Utilize um loop controlado por sentinela para determinar quando o programa deve parar o loop e exibir os
resultados finais.

Como posso corrigir o loop do do…while toda vez que digito S faz a mesma operação

import java.util.Scanner;

public class Ex517 {
public static void main(String[] args){
String rep;
float ToT = 0f;
float prod1 = 2.98f;
float prod2 = 4.50f;
float prod3 = 9.98f;
float prod4 = 4.49f;
float prod5 = 6.87f;
System.out.println ("Painel de produtos ");
Scanner scan = new Scanner(System.in);
int choice = scan.nextInt();
do {
switch(choice){
case 1:
System.out.println(“Produto custa 2.98 reais”);
ToT = ToT + prod1;
break;
case 2:
System.out.println(“Produto custa 4.50 reais”);
ToT = ToT + prod2;
break;
case 3:
System.out.println(“Produto custa 9.98 reais”);
ToT = ToT + prod3;
break;
case 4:
System.out.println(“Produto custa 4.49 reais”);
ToT = ToT + prod4;
break;
case 5:
System.out.println(“Produto custa 6.87 reais”);
ToT = ToT + prod4;
break;
default:
System.out.println(“Produto não cadrastado”);
}
System.out.println (“Colocar mais produto [S] ou [N]”);
Scanner scan1 = new Scanner(System.in);
rep = scan1.next();
} while (rep.equals(“s”));
System.out.println("Valor total das compras "+ ToT);
}
}

Primeiramente, formate seu código. Edite seu post, selecione o código e clique no botão </> do editor.

Estás a ler o teu choice antes de entrar no teu loop. Assim, o seu valor vai ser sempre o mesmo. Deves ler o valor dentro do loop:

Scanner scan = new Scanner(System.in);
do {
    int choice = scan.nextInt();
    switch(choice){
       case 1:

No final estás a criar novamente um Scanner a partir de System.in. Porque não usas simplesmente o mesmo scanner para a leitura?

E, já agora, não estás a implementar corretamente o que é pedido. Não estás a pedir a quantidade vendida para efetuar o cálculo.

Obrigado pela Resolução.Sou novato não conheço totalmente as funções do java.

Sim.Faltava,mas ja corrigir so precisava consertar o loop que eu não fazia ideia de onde procurar.