0

Я ненавижу Массивы2D массива и вне границ исключения

Так я делал некоторые кодирования и я пришел с ошибкой (из-за исключения Bounds), что я просто не могу исправить. Я верю, что говорю «array1 [counter2] [counter] = input2.nextLine();» это проблема, но я не знаю, что не так! Помогите, я не выношу эти исключения из исключений

Идея для программы - это онлайн-телефонная книга, в которой вы можете добавлять контакты, просматривать их и искать по их имени, фамилии и номеру телефона.

Вот код, я использую:

import java.util.Scanner; 
import java.awt.*; 
public class testMattWalker { 
// 
public static void main (String[] args){ 
    //Declare all your variables here. Make sure to provide a comment explaining the purpose of each variable 
    Scanner input = new Scanner(System.in); 
    Scanner input2 = new Scanner(System.in); 
    Scanner input3 = new Scanner(System.in); 
    Scanner input4 = new Scanner(System.in); 
    int counter = 0; 
    int counter2 = 0; 
    boolean go = true; 

    //Temp VAriables for entry 
    String firstNameOfEntry = ""; 
    String lastNameOfEntry = ""; 
    String personPhoneNumber = ""; 
    // 

    //create array 
    String [][] array1 = new String[5][3]; 

    while (go) { 

    String choice = ""; 

    System.err.println("\n\n\n\n\n\n\n\n\nDIDGITAL PHONE BOOK 2013"); 
    System.out.println("1- Create phone book\n2- Display phone book\n3- Find person(s) by last name\n4- Find person(s) by first name\n5- Find person(s) by phone number\n6- Exit application"); 
    choice = input.nextLine(); 

    if (choice.equals("1") && counter2 != 6) { 

    System.err.println("\n\n\n\n\nPHONE BOOK ENTRY CREATOR:"); 
    System.out.println("Please enter the first name of the person you wish to enter: "); 
    array1[counter2][counter] = input2.nextLine(); 
    counter++; 

    System.out.println("Please enter the last name of the person you wish to enter: "); 
    array1[counter2][counter] = input3.nextLine(); 
    counter++; 

    System.out.println("Please enter the phone number of this person: example:9057773344"); 
    array1[counter2][counter] = input4.nextLine(); 
    counter++; 
    counter2++; 

    }else if (choice.equals("2")) { 



    }else if (choice.equals("3")) { 



    }else if (choice.equals("4")) { 



    }else if (choice.equals("5")) { 



    }else if (choice.equals("6")) { 

    } 
    } 
}// end of main 
}// end of class 

Я знаю, что это не близко к сделано, но я такой парень, который любит, чтобы исправить все, прежде чем двигаться дальше, так что любая помощь будет оценен по достоинству! (:

ответ

1

Вы устанавливаете второе измерение вашего массива, как 3, но в коде добавление 1 к. счетчик 3 раза, что означает, что он выходит за пределы массива после первой итерации кода.

Как указано в ljgw, индексы массива начинаются с 0, поэтому размерность 3 означает, что соответствующие индексы равны 0,1 и 2.

0

Помните, что индексы массива начинаются с 0 Итак:. 5 уже недоступными для Counter2

Смежные вопросы