使用Java

时间:2016-06-23 16:38:18

标签: java arrays multidimensional-array methods

以下是我的问题: “创建一个程序,跟踪用户输入的以下信息: 名字,姓氏,电话号码,年龄 现在 - 让我们将它存储在一个多维数组中,该数组将容纳10个这样的联系人。所以我们的多维数组需要10行4列。 您应该能够在阵列中添加,显示和删除联系人。 “ ** FixedThis(我坚持创建一个方法来回调并将用户输入输入到我的二维数组中。)

**新问题,我收到案例3的错误,我似乎无法返回打印显示的方法,有什么建议可以解决这个问题吗?

import java.util.Scanner; 公共课Lab2 {     String [] [] myArray = new String [10] [4];

    public static void main(String[]args)
    {
        new Lab2();
    }

    public Lab2()
    {
        Scanner input = new Scanner(System.in);

        while(true)
        {
            System.out.println("Welcome to the Contact Directory, please select from following: ");
            System.out.println("Type 1 to add contact, 2 to remove contact, 3 to display contacts and 0 to exit.");
            int intChoice = input.nextInt();
            input.nextLine();

            String strFirstName; 
            String strLastName;
            switch(intChoice)
            {
                case 1:
                System.out.println("Enter First Name");
                strFirstName = input.nextLine();

                System.out.println("Enter Last Name");
                strLastName = input.nextLine();

                System.out.println("Enter Phone Number");
                String strPhoneNumber = input.nextLine();

                System.out.println("Enter Age");
                String strAge = input.nextLine();

                addItem(strFirstName, strLastName, strPhoneNumber, strAge);
                break;
                case 2:
                System.out.println("Enter First Name to Remove");
                strFirstName = input.nextLine();

                System.out.println("Enter Last Name to Remove");
                strLastName = input.nextLine();

                removeItem(strFirstName, strLastName);
                break;
                case3:// GETTING AN ERROR UNREACHABLE STATEMENT
                displayItems();
                break;
                case 0:
                System.exit(0);
            }
        }
    }

    public void addItem(String strFirstName, String strLastName,
    String strPhoneNumber, String strAge)
    {

       for(int i = 0; i < myArray.length; i++)
    {
        for(int j = 0; j < myArray[i].length; j++)
        {
           if (myArray[i][0] == null)
           {
               myArray[i][0] = strFirstName;
               myArray[i][1] = strLastName;
               myArray[i][2] = strPhoneNumber;
               myArray[i][3] = strAge;
               ; break;
            }
       }
    }
}

    public void removeItem(String strFirstName, String strLastName)
    {
         int i, j;

         for(i = 0; i < myArray.length; i++)
         {
             for(j = 0; j < myArray.length - 1; j++){
                     myArray[i][j] = myArray[i + 1][j];
                     break;
                }
            }
        }

    public void displayItems()
    { 
        for(int i = 0; i < myArray.length; i++)
        {
            for (int j = 0; j < myArray[i].length; j++)
            {
                System.out.print(myArray[i][j] + " ");
            }
            System.out.println();
        }
    }

}

1 个答案:

答案 0 :(得分:1)

您的提示应该是用于解决问题的代码。找到下一个可用的并添加它。

    if (myArray[i][0] == null)
    {
        myArray[i][0] = strFirstName;
        myArray[i][1] = strLastName;
        myArray[i][2] = strPhoneNumber;
        myArray[i][3] = strAge;
        blnInserted = true; 
        break;
    }

您不需要第二个循环,因为您只是根据名字检查整个条目是否为null。在删除封闭的第二个循环后,应该在您混淆的部分添加代码。

此外,不需要null之后的||检查。如果它null您无法检查相等性,那么这样做会需要一个不能null的实例。