2013-02-25 6 views
0

J'essaie d'écrire un programme, et le reste du code fonctionne jusqu'à présent mais je reçois des types incompatibles trouvés: double requis: Article d'épicerie dans la ligne 38. Quelqu'un peut-il m'aider à expliquer pourquoi Je reçois cette erreur et comment la corriger? Je vous remercie. voici mon code:types incompatibles trouvés: double

import java.util.Scanner; 

public class GroceryList { 

    private GroceryItem[]groceryArr; //ARRAY HOLDS GROCERY ITEM OBJECTS 
    private int numItems; 
    private String date; 
    private String storeName; 
    public GroceryList(String inputDate, String inputName) { 

//FILL IN CODE HERE 
// CREATE ARRAY, INITIALIZE FIELDS 
    groceryArr = new GroceryItem[10]; 
    numItems = 0; 

    } 

    public void load() { 

    Scanner keyboard = new Scanner(System.in); 
     double sum = 0; 
     System.out.println ("Enter the trip date and then hit return:"); 
    date = keyboard.next(); 
    keyboard.nextLine(); 
    System.out.println("Enter the store name and then hit return:"); 
    storeName = keyboard.next(); 
    keyboard.nextLine(); 
    double number = keyboard.nextDouble(); 

    //NEED TO PROMPT USER FOR, AND READ IN THE DATE AND STORE NAME. 


    System.out.println("Enter each item bought and the price (then return)."); 
    System.out.println("Terminate with an item with a negative price."); 
    number = keyboard.nextDouble(); 

    while (number >= 0 && numItems < groceryArr.length) { 
     groceryArr[numItems] = number; 
     numItems++; 
     sum += number; 
     System.out.println("Enter each item bought and the price (then return)."); 
     System.out.println("Terminate with an item with a negative price."); 
     number = keyboard.nextDouble(); 
    } 


    /* 
    //READ IN AND STORE EACH ITEM. STORE NUMBER OF ITEMS 
    } 

    private GroceryItem computeTotalCost() { 
    //add code here 
    } 

    public void print() { 
    \\call computeTOtalCost 
    } 
    */ 
} 
} 
+0

Eh bien, si c'est sur cette ligne groceryArr [numItems] = nombre; ce que je ne peux pas dire d'ici, c'est peut-être parce que l'épicerie n'est pas double, c'est-à-dire qu'elle devrait être grceryArr [numItems] .Prix = nombre; Soemthing comme ça de toute façon. –

Répondre

0

"groceryArr [numItems] = nombre;"

groceryArr [numItems] est une instance de GroceryItem() - 'numéro' est un double

Vous avez besoin d'une double variable dans votre objet GroceryItem() pour stocker la valeur 'numéro'.

+0

J'ai changé groceryItem pour doubler à la place. et il compilé. Cependant, quand je l'exécute, il me dit que je n'ai pas une méthode principale static void acceptant String []. mais quand je l'ajoute, il me dit que toutes les lignes commençant par private sont des début d'expressions illégales. Où dois-je placer la ligne vide statique? – user2085224

+0

Sans voir le nouveau code, il vous manque probablement un '}' quelque part (ou en avoir un de trop) - vérifiez également que vous n'avez pas placé la méthode 'public static void main' au mauvais endroit - assurez-vous que c'est avant la dernière '}' dans la classe ci-dessus. – kbbucks

+0

En fait, maintenant que je le regarde à nouveau, vous avez un '}' à la fin de votre classe - enlevez le dernier en haut. – kbbucks

Questions connexes