2013-11-23 28 views
0

任何想法为什么不会在用户指定的金额后启动For循环?最大数量用户可以输入为100为什么我的For循环在用户输入特定数量后继续?

class MakeTables 
{ 
    private static final int MAX_NUMBER_TABLES = 100; 
    public static void main(String[] args) 
    { 
     Table[] tables = new Table[MAX_NUMBER_TABLES]; 
     int i = Integer.parseInt(JOptionPane.showInputDialog("How many tables would you like to create?")); 

     for (i = 0; i < tables.length; i++) 
     { 
      tables[i] = new Table(); 
      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:"))); 

      if (tables[i] != null) 
       JOptionPane.showMessageDialog(null,(tables[i].toString())); 

     } // end for 
    } // end main 

} // end class 
+3

你问用户的价值'我',然后将其设置为0.这是什么意思? –

+0

_for循环踢出_这甚至意味着什么? –

+0

想必用户只想循环多次,因为用户想要表格。如果表格数组首先被初始化为具有正确的长度,这将被解决。 –

回答

0

你可以尝试:

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

问题

你在要求输入用户并将其存储在i

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

然后您重置的值至0

for (i = 0; i < tables.length; i++) 

解决方案

int input = Integer.parseInt(JOptionPane.showInputDialog("How many tables would 
                 + you like to create?")); 

for (i = 0; i < input; i++) 
0

当您启动您的for循环,可以重置(这是存储在i)为0,用户输入的值,而换循环将从0开始执行直到它不再符合设置条件(i < tables.length),因此无论如何它都会从0到100。我建议你在for循环中使用一个不同的迭代器,所以你不会覆盖你的用户输入。此外,你应该重新访问你的for-loop条件(想想你真正想要的!)。