需要帮助!从循环中打印先前的用户输入数据

时间:2017-07-16 04:33:05

标签: java loops printf

嘿,这里的新人需要我的问题帮助!我需要从循环中打印以前的用户输入数据,问题是它打印用户输入的最后一个数据。请说明我的思绪渐渐变暗。我感谢你们所有的答案。谢谢! 我的节目:(对不起,如果它很恶心)

package activity2;

import java.util.Scanner;
public class Activity2 {


    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String[] name = {"Milk","Juice","Energy drink","Water","Softdrink","Beer","Wine","Coffee"};
        int[] pnum = {0,1,2,3,4,5,6,7};
        double[] price = {300,100,220,120,200,350,400,130};
        String[] list = {"Enter product #: ","Enter quantity: ","Sub-total: "};
        double sum=0,q=0,v,s;
        int sum2=0, w;
        String z = "";
        int x,c = 0;
        System.out.println("            Product Information");
        System.out.println("------------------------------------------");
        System.out.println("Name                        Price");
        System.out.println("------------------------------------------");
        System.out.println(pnum[0]+"."+name[0]+"                         "+price[0]);
        System.out.println(pnum[1]+"."+name[1]+"                        "+price[1]);
        System.out.println(pnum[2]+"."+name[2]+"                 "+price[2]);
        System.out.println(pnum[3]+"."+name[3]+"                        "+price[3]);
        System.out.println(pnum[4]+"."+name[4]+"                    "+price[4]);
        System.out.println(pnum[5]+"."+name[5]+"                         "+price[5]);
        System.out.println(pnum[6]+"."+name[6]+"                         "+price[6]);
        System.out.println(pnum[7]+"."+name[7]+"                       "+price[7]);
        System.out.println("------------------------------------------");
        do{
        System.out.print("Enter number of products: ");
        int a = sc.nextInt();

        for (x=0;x<a;x++){

            System.out.print(list[0]);
            w = sc.nextInt();
            sum2 =w;
            System.out.print(list[1]);
            s = sc.nextDouble();
            q = s * price[w];
            System.out.println(list[2]+q);
            sum +=q;

        }
        System.out.println("Total: " + sum);
        System.out.print("Do you want another transaction?(y/n):");
        z = sc.next();
        x = a;
        v = q;
        System.out.println("Transaction Details"); 
        for(int t=0; t<x; t++){
         System.out.println(pnum[sum2]+"."+name[sum2]+"---------"+v);
                 }
         System.out.println("TOTAL: " + sum);
         System.out.print("Enter cash amount: ");
         double i = sc.nextDouble();
         if(sum>i){
             System.out.println("Cash is insuffecient! Please try again:");
             System.out.print("Enter cash amount: ");
             i = sc.nextDouble();
         }
         double tc = i - sum;
         System.out.print("Cash change"+tc);
        }
        while(z.equals("y")); 


    }
}

2 个答案:

答案 0 :(得分:0)

一种方法是使用StringBuilder

(链接下面直接引用)

  

“StringBuilder对象就像String对象一样,除了可以修改它们。在内部,这些对象被视为包含一系列字符的可变长度数组。在任何时候,序列的长度和内容都可以改变通过方法调用。“

您可以使用StringBuilder保存数据,然后一次打印所有内容。这也使生活更容易; - )

public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String[] name = {"Milk","Juice","Energy drink","Water","Softdrink","Beer","Wine","Coffee"};
        int[] pnum = {0,1,2,3,4,5,6,7};
        double[] price = {300,100,220,120,200,350,400,130};
        String[] list = {"Enter product #: ","Enter quantity: ","Sub-total: "};
        double sum=0,q=0,v,s;
        int sum2=0, w;
        String z = "";
        int x,c = 0;
        System.out.println("            Product Information");
        System.out.println("------------------------------------------");
        System.out.println("Name                        Price");
        System.out.println("------------------------------------------");
        System.out.println(pnum[0]+"."+name[0]+"                         "+price[0]);
        System.out.println(pnum[1]+"."+name[1]+"                        "+price[1]);
        System.out.println(pnum[2]+"."+name[2]+"                 "+price[2]);
        System.out.println(pnum[3]+"."+name[3]+"                        "+price[3]);
        System.out.println(pnum[4]+"."+name[4]+"                    "+price[4]);
        System.out.println(pnum[5]+"."+name[5]+"                         "+price[5]);
        System.out.println(pnum[6]+"."+name[6]+"                         "+price[6]);
        System.out.println(pnum[7]+"."+name[7]+"                       "+price[7]);
        System.out.println("------------------------------------------");
        do{
        System.out.print("Enter number of products: ");
        int a = sc.nextInt();

        StringBuilder sb = new StringBuilder();
        for (x=0;x<a;x++) {

            System.out.print(list[0]);
            w = sc.nextInt();
            sum2 =w;
            System.out.print(list[1]);
            s = sc.nextDouble();
            q = s * price[w];
            System.out.println(list[2]+q);
            sb.append(pnum[sum2]+"."+name[sum2]+"---------"+q + "\n");
            sum +=q;

        }
        System.out.println("Total: " + sum);
        System.out.print("Do you want another transaction?(y/n):");
        z = sc.next();
        x = a;
        v = q;
        System.out.println("Transaction Details"); 
        System.out.println(sb);
         System.out.println("TOTAL: " + sum);
         System.out.print("Enter cash amount: ");
         double i = sc.nextDouble();
         if(sum>i){
             System.out.println("Cash is insuffecient! Please try again:");
             System.out.print("Enter cash amount: ");
             i = sc.nextDouble();
         }
         double tc = i - sum;
         System.out.print("Cash change"+tc);
        }
        while(z.equals("y")); 


    }

这将为您提供您正在寻找的输出。

答案 1 :(得分:0)

问题是您没有保存每个条目。如果您希望能够在最后打印它,则需要执行此操作。我不确定你要做什么,但这至少应该让你知道你需要做什么才能打印出交易细节。另外,您确实需要更好地命名变量。

import java.util.Scanner;

public class Activity2 {
public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    String[] name = {"Milk","Juice","Energy drink","Water","Softdrink","Beer","Wine","Coffee"};
    int[] pnum = {0,1,2,3,4,5,6,7};
    double[] price = {300,100,220,120,200,350,400,130};
    String[] list = {"Enter product #: ","Enter quantity: ","Sub-total: "};
    double sum=0,q=0,v,s;
    int sum2=0, w;
    String z = "";
    int x,c = 0;
    System.out.println("            Product Information");
    System.out.println("------------------------------------------");
    System.out.println("Name                        Price");
    System.out.println("------------------------------------------");
    System.out.println(pnum[0]+"."+name[0]+"                         "+price[0]);
    System.out.println(pnum[1]+"."+name[1]+"                        "+price[1]);
    System.out.println(pnum[2]+"."+name[2]+"                 "+price[2]);
    System.out.println(pnum[3]+"."+name[3]+"                        "+price[3]);
    System.out.println(pnum[4]+"."+name[4]+"                    "+price[4]);
    System.out.println(pnum[5]+"."+name[5]+"                         "+price[5]);
    System.out.println(pnum[6]+"."+name[6]+"                         "+price[6]);
    System.out.println(pnum[7]+"."+name[7]+"                       "+price[7]);
    System.out.println("------------------------------------------");
    do{
    System.out.print("Enter number of products: ");
    int a = sc.nextInt();
    int[] productNum = new int[a];
    String[] products = new String[a];
    double[] prices = new double[a];
    for (x=0;x<a;x++){

        System.out.print(list[0]);
        w = sc.nextInt();
        sum2 =w;
        System.out.print(list[1]);
        s = sc.nextDouble();
        q = s * price[w];
        System.out.println(list[2]+q);
        sum +=q;
        productNum[x] = w;
        products[x] = name[w];
        prices[x] = q;

    }
    System.out.println("Total: " + sum);
    System.out.print("Do you want another transaction?(y/n):");
    z = sc.next();
    x = a;
    v = q;
    System.out.println("Transaction Details"); 
    for(int t=0; t<x; t++){
     System.out.println(productNum[t]+"."+products[t]+"---------"+prices[t]);
             }
     System.out.println("TOTAL: " + sum);
     System.out.print("Enter cash amount: ");
     double i = sc.nextDouble();
     if(sum>i){
         System.out.println("Cash is insuffecient! Please try again:");
         System.out.print("Enter cash amount: ");
         i = sc.nextDouble();
     }
     double tc = i - sum;
     System.out.print("Cash change"+tc);
    }
    while(z.equals("y")); 


  }
}