2016-05-15 100 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); 
}