2013-11-23 3 views
-1

Это код, над которым я работаю для задания. Скажем, я хотел бы сделать три таблицы (просто случайное число. Число таблиц может быть любым числом, если оно не превышает 100). Почему цикл не выйдет после ввода значений третьей таблицы. Также существует максимальное ограничение для количества таблиц, которые могут быть созданы.Для цикла не будет выходить

import javax.swing.JOptionPane; 

class MakeTables 
{ 
    private static final int MAX_NUMBER_TABLES = 100; 
    public static void main(String[] args) 
    { 
     Table[] tables = new Table[MAX_NUMBER_TABLES]; 
     for (int i = Integer.parseInt(JOptionPane.showInputDialog("How many tables would you like to create?")); i < tables.length; i++) 
     { 
      tables[i] = new Table(); 
      if (tables[i] != null) 
      { 
       tables[i].setHeight(Double.parseDouble(JOptionPane.showInputDialog("Enter height:"))); 
       tables[i].setWeight(Double.parseDouble(JOptionPane.showInputDialog("Enter weight:"))); 
       tables[i].setColor(JOptionPane.showInputDialog("Enter color:")); 
       tables[i].setNumberOfLegs(Integer.parseInt(JOptionPane.showInputDialog("Enter number of legs:"))); 
       JOptionPane.showMessageDialog(null,(tables[i].toString())); 
      } // end if 
     } // end for 
    } // end main 
} // end class 
+0

Если пользователь вводит 20, какой индекс массива будет доступен первым? –

+0

@ Таблицы Сотириоса Делиманоли [20] || 21-й объект – iShaalan

+0

вы должны запросить длину массива не от того места, где начинается присвоение – iShaalan

ответ

1
for (int i = Integer.parseInt(JOptionPane.showInputDialog("How many tables would you like to create?")); i < tables.length; i++) 

Здесь счетчик цикла i первоначально установлен на 3 (или любой другой пользователь вводит). Затем цикл продолжается до i = 100. Вот почему он не работает так, как вы ожидаете.

Сначала установите счетчик на 0, затем разбейте цикл, когда счетчик достигнет указанного пользователем предела или размер массива. Еще лучше, не создавайте массив до тех пор, пока вы не узнаете указанный пользователем лимит.

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