É porque vc precisa pedir os dados pro usuário dentro do for. Olha como eu fiz:
importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String...args){Scannerscan=newScanner(System.in);for(inti=0;i<10;i++){System.out.println("\nDigite Produto e Valor:");Stringproduto=scan.nextLine();doublevalor=Double.parseDouble(scan.nextLine());doublemetadePreco=valor/2;System.out.println("Nome do Produto: "+produto);System.out.println("Preço com 50% de Desconto: "+metadePreco);}scan.close();}}
No exemplo eu usei Double.parseDouble(scan.nextLine()) ao invés do nextDouble() porque assim evitamos um comportamento indesejado que ocorre sempre que invocamos um nextLine() logo após um nextDouble().