Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

java初心者です。

public class Item {
    private String NAME;
    private int ID;
    private int NUM;
    private int PRICE;
      public void setdata(String a,int b,int c,int d){
        NAME=a;
        ID=b;
        NUM=c;
        PRICE=d;
    }
}
import java.util.Scanner;
public class SetItemData {
    Scanner scan=new Scanner(System.in);
    public static void main(String[] args) {
        
        Scanner scan=new Scanner(System.in);
        
        String line;
        
        Item[] item=new Item[10];
        
        String[] name=new String[10];
        int[] id =new int[10];
        int[] num=new int[10];
        int[] price=new int[10];
        
        String NAME;
        int ID;
        int NUM;
        int PRICE;
        
        item=new Item[10];
        int change;
        int sID;
        int func;
        
        while(!(line=scan.next()).equals("quit")){
            for(int i=0;i<10;i++){
                System.out.println("商品データを商品名、ID、個数、値段の順で入力してください。");
                name[i]=scan.next();
                id[i]=scan.nextInt();
                num[i]=scan.nextInt();
                price[i]=scan.nextInt();
                item[i].setdata(name[i],id[i],num[i],price[i]);
                if(i==10){
                    System.out.println("これ以上は商品データを登録できません。");
                    break;
                }
            }
        }

上記のように、quitが入力されるまで、商品データを登録するプログラムを書きたいのですが、NullPointerExceptionが起こってしまいます。
どうすれば良いのでしょうか?

2

回答

692

閲覧

2件の回答

評価

0

これで動きます
import java.util.Scanner;
 class Item {
    private String NAME;
    private int ID;
    private int NUM;
    private int PRICE;
      public void setdata(String a,int b,int c,int d){
        NAME=a;
        ID=b;
        NUM=c;
        PRICE=d;
    }
}

public class SetItemData {
    Scanner scan=new Scanner(System.in);
    public static void main(String[] args) {
        
        Scanner scan=new Scanner(System.in);
        
        String line;
        
        Item[] item=new Item[10];
        
        String[] name=new String[10];
        int[] id =new int[10];
        int[] num=new int[10];
        int[] price=new int[10];
        
        String NAME;
        int ID;
        int NUM;
        int PRICE;
        
    for(int i=0;i<10;i++){
        item[i]=new Item();
    }        

    int change;
        int sID;
        int func;
        
        while(!(line=scan.next()).equals("quit")){
            for(int i=0;i<10;i++){
                System.out.println("商品データを商品名、ID、個数、値段の順で入力してください。");
                name[i]=scan.next();
                id[i]=scan.nextInt();
                num[i]=scan.nextInt();
                price[i]=scan.nextInt();
                item[i].setdata(name[i],id[i],num[i],price[i]);
                if(i==9){
                    System.out.println("これ以上は商品データを登録できません。");
                    break;
                }
            }
        }
}}

評価

0

ここは本来答えを教えてもらうところではないんだけどね。
ガイドラインも読んでないようだし。
昨今は「知ってる人間が答えを教えないのはおかしい」と考えてる連中ばかりなようだから、仕方がないか。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。