Как разбить циклы и назначить параметры для объекта массива - PullRequest
2 голосов
/ 18 апреля 2019
  1. Цикл должен прекратиться, если я введу другие числа, но он все еще зацикливается.
  2. Произошла ошибка при установке информации для объекта сотрудника. Как на самом деле предполагается писать?
System.out.println("Enter '1' to add employee's information:");

int add = s.nextInt();

while(add==1){

   for (int i=0; i<=employees.length; i++){

       System.out.println("Enter the name :");
       String newName = s.next();

       System.out.println("Enter the IC number :");
       String newIC = s.next();

       System.out.println("Enter the department :");
       String newdept = s.next();

       employees[i] = new Employee();
       employees[i].setEmployee(newName, newIC, newdept);

       System.out.println("Enter '1' to add employee's information:");
       add = s.nextInt();
     }
}

результат для цикла может остановиться, и мы можем установить информацию для объекта.

Ответы [ 2 ]

1 голос
/ 18 апреля 2019

Ключом является следующая конструкция:

while(add==1){
  for (int i=0; i<=employees.length; i++){
    // Code
    add = s.nextInt();
  }
}

Посмотрите на то, что вы указали здесь:

  • Проверьте, является ли добавление 1
  • Просмотрите всех сотрудниковэлементы
    • Что-то сделать
    • Установить добавить к другому значению
  • После того как все сотрудники обработаны, начните сначала

Ваша переменная добавления не играет никакой роли во время цикла for (i=0...), она всегда выполняется полностью.

Возможно, вы захотите переключитьсяиспользуйте операторы while и for или просто используйте что-то вроде этого:

 for (int i = 0; i < employees.length; i++) {
   if (add != 1) break;
   // ...
   add = s.nextInt()
 }

В качестве дополнительного примечания, вам нужно проверить i < employees.length, чтобы избежать ArrayIndexOutOfBoundsException.В конце концов, длина - это первый недопустимый индекс.

Добро пожаловать в StackOverflow и продолжайте взламывать.

0 голосов
/ 23 апреля 2019

Вы также можете использовать разрывную оговорку, но это не рекомендуется, например, вот так:

for (int i = 0; i < employees.length; i++) {

   // your code
   if (add != 1){
        break;
   }
   add = s.nextInt()
 }

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

...