ما سبب ظهور الخطأ java.lang.nullpointerexception فى الكود؟

masoud ahmad • منذ سنتين
package com.company;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {


        Scanner in = new Scanner(System.in);


        char con = 'y';
        int su = 0;
        Account[] accounts = new Account[10];
        System.out.println(accounts.length);
       // while (con == 'y') {


            System.out.println(" أهلا وسهلا بك ");
            System.out.println(" قم ادخال بيانات الفاتورة ");
            System.out.println("ادخل اسم الزبون   ");

            String cn = in.next();
            accounts[su].setUserName(cn);
           System.out.println(accounts[su].getUserName());

            System.out.println("ادخل رقم الزبون ");
            int cno = in.nextInt();
            accounts[su].setUserID(cno);

            System.out.println("ادخل عدد العناصر  ");
            int count = in.nextInt();
            accounts[su].setCount(count);

            System.out.println("ادخل قيمة الفاتورة   ");
            int sal = in.nextInt();
            accounts[su].setSalary(sal);

            System.out.println("ادخل قيمة الخصم    ");

            accounts[su].setDiscount(in.nextDouble());
            int a = 1;
            for (int i = 0; i < a; i++) {
                System.out.println("ادخل جنس الزبون  ");
                try {
                    a++;
                    accounts[su].setGender(Gender.valueOf(in.next()));

                } catch (Exception e) {
                    i = -1;
                    System.out.println("يرجى ادخال الجنس بصيغة صحيحة xx or xy ");
                }
            }


            System.out.println(" ماذا تريد ان تفعل ");
            System.out.println(" *********** " +
                    "طباعة كل البيانات(1) " +
                    "طباعة الاسم ورقم الفاتورة)2( " +
                    "طباعة سعر الفاتورة(3)" +
                    "طباعة جميع  الفواتير (4)" +
                    "اضافة فاتورة اخرى(5))" +
                    "الخروج من البرنامج(6)) ");

            int w2 = in.nextInt();

            switch (w2) {
                case 1:
                    System.out.println("أدخل رقم الفاتورة المراد طباعتها " +
                            "(عددالفواتير الموجودة =" + accounts.length);
                    int f = in.nextInt();
                    System.out.println(accounts[f].toString());
                    break;

                case (2):
                    System.out.println("أدخل رقم الفاتورة المراد طباعتها " +
                            "(عددالفواتير الموجودة =" + accounts.length);
                    int s = in.nextInt();
                    System.out.println(accounts[s].nameiduser());
                    break;
                case 3:

                    System.out.println(accounts[su].getSalary());
                    break;
                case 4:
                    for (Account account : accounts) {
                        System.out.println(account.getSalary());
                    }
                    break;
                case 5:

                    System.out.println("wait ...");
                    su++;
                    break;

                case 6:
                    System.exit(0);

            }
        }

    }
package com.company;

public enum Gender {
    xy,xx

}
package com.company;

public class Account {
    private int userID;
    private String userName;
    private double discount;
    private int count;
    private int salary;
    private Gender gender ;

    public Gender getGender() {
        return gender;
    }

    public void setGender(Gender gender) {
        this.gender = gender;
    }

    public int getSalary() {
        return salary;
    }

    public int setSalary(int salary) {
        int newSalary = 0;
        if (salary == 101) {
            newSalary = 100;
        } else {
            newSalary=salary;
        }
        return newSalary;
    }


    public Account(int userID, String userName, double discount, int count, int salary, Gender gender) {
        this.userID = userID;
        this.userName = userName;
        this.discount = discount;
        this.count = count;
        this.salary = salary;
        this.gender = gender;
    }

    public Account(int userID, String userName, double discount, int count, int salary) {
        this.userID = userID;
        this.userName = userName;
        this.discount = discount;
        this.count = count;
        this.salary = salary;
    }

    public Account(){};


    public int getUserID() {
        return userID;
    }

    public void setUserID(int userID) {
        this.userID = userID;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public double getDiscount() {
        return discount;
    }

    public void setDiscount(double discount) {
        this.discount = discount;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    @Override
    public String toString() {
        return "Account{" +
                "userID=" + userID +
                ", userName='" + userName + '\'' +
                ", discount=" + discount +
                ", count=" + count +
                ", salary=" + salary +
                '}';
    }
    public String nameiduser() {
        return "Account{" +
                "userID=" + userID +
                ", userName='" + userName + '\'' +

                '}';
    }
}

 

كلمات دليلية: erorr java runtimeeroor

ساعد بالإجابة

"إن في قضاء حوائج الناس لذة لا يَعرفها إلا من جربها، فافعل الخير مهما استصغرته فإنك لا تدري أي حسنة تدخلك الجنة."

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !