2016-05-15 36 views
0

所以我创建了一个发票程序,当我必须从两个数组相乘时得到总数时,我被卡在了部件上。我能够将它们相乘,并且我得到的值,但不幸的是,如果我输入多个项目,则会有多个值。我希望能够添加我得到的总值。如何添加乘以两个数组得到的值?

为了给你一个想法,这里是我的代码:

public static void main(String []args){ 

Scanner input = new Scanner(System.in); 


    String sentinel = "End"; 

    String description[] = new String[100]; 

    int quantity[] = new int[100]; 

    double price [] = new double[100]; 
    int i = 0; 
    // do loop to get input from user until user enters sentinel to terminate data entry 
    do 
    { 
    System.out.println("Enter the Product Description or " + sentinel + " to stop"); 
    description[i] = input.next(); 

    // If user input is not the sentinal then get the quantity and price and increase the index 
    if (!(description[i].equalsIgnoreCase(sentinel))) { 
     System.out.println("Enter the Quantity"); 
     quantity[i] = input.nextInt(); 
     System.out.println("Enter the Product Price "); 
     price[i] = input.nextDouble(); 
    } 
    i++; 
    } while (!(description[i-1].equalsIgnoreCase(sentinel))); 


    System.out.println("Item Description: "); 
    System.out.println("-------------------"); 
    for(int a = 0; a <description.length; a++){ 
    if(description[a]!=null){ 
     System.out.println(description[a]); 
    } 
} 
    System.out.println("-------------------\n"); 


    System.out.println("Quantity:"); 
    System.out.println("-------------------"); 
    for(int b = 0; b <quantity.length; b++){ 
    if(quantity[b]!=0){ 
     System.out.println(quantity[b]); 
    } 
    } 
    System.out.println("-------------------\n"); 

    System.out.println("Price:"); 
    System.out.println("-------------------"); 
    for(int c = 0; c <price.length; c++){ 
    if(price[c]!=0){ 
     System.out.println("$"+price[c]); 
    } 
    } 
    System.out.println("-------------------"); 

    //THIS IS WHERE I MULTIPLY THE PRICE AND THE QUANTIY TOGETHER TO GET THE TOTAL 
    for (int j = 0; j < quantity.length; j++) 
    { 
    //double total; 
    double total; 
    total = quantity[j] * price[j]; 
    if(total != 0){ 
     System.out.println("Total: " + total); 
    } 

    } 
} 
} 

回答

1

在你最后的for循环,你只是乘以数量,项目的价格,并把它作为总的价值,而不是将其添加到总计。每次它循环它创建一个新的total.To使它更好,宣布总的循环,并将你的if语句移出

double total = 0.0; 
for (int j = 0; j < quantity.length; j++){ 

    total += quantity[j] * price[j]; 
} 

if(total != 0){ 
    System.out.println("Total: " + total); 
}