2015-07-11 3 views
0
public static void main(String[] args) { 

     ArrayList<String> names = new ArrayList<String>(); 

     names.add(JOptionPane.showInputDialog("Enter type of pie")); 

    } 

Как бы это сделать? Я пробовал dowhile (!names.equalsIgnoreCase("q"));, но он не может его найти.Как создать инструкцию цикла в списках массивов

 names.add(JOptionPane.showInputDialog("Enter type of pie")); 
+0

Что вы имеете в виду, что не могу найти его? – Marcin

+0

Ошибка компиляции не может найти символ «имена» – dan

+0

Работает ли он до того, как вы добавите цикл for? I.e код, который вы отправили выше, компилируется? – Marcin

ответ

1

Эта работа прекрасна.

 String str = null; 
    List<String> names = new ArrayList<String>(); 
    do 
    { 
     str = JOptionPane.showInputDialog("Enter type of pie"); 
    if(!str.equalsIgnoreCase("q")) 
     names.add(str); 
    }while(!str.equalsIgnoreCase("q")); 
+1

Итак, добавление« q »в список в порядке? – Shar1er80

+0

Вы можете просто сделать это в цикле 'while' и не добавлять' q' в 'List' таким образом - это довольно уродливо. –

0

В вашем цикле, вы должны перебирать список имен и вызвать equalsIgnoreCase («Q») по каждому элементу, добавляя другой вход диалогового каждую итерацию.

считают:

while (names.isEmpty() || !names.get(names.size() - 1).equalsIgnoreCase("q")) 
{ 
    names.add(JOptionPane.showInputDialog("Enter type of pie")); 
} 

И если вы хотите, чтобы игнорировать название пирога «д»:

while (names.isEmpty() || !names.get(names.size() - 1).equalsIgnoreCase("q")) 
{ 
    names.add(JOptionPane.showInputDialog("Enter type of pie")); 
} 
// populates the ArrayList names with the JOptionPane user input 
if (!names.isEmpty()) 
{ 
    names.remove(names.size() - 1); 
    // remove the last name inputted by the user 
    // since the only way to terminate the loop is by entering "q", 
    // you are removing the name of "q" from the list. 
} 

EDIT: это лучше реализация, так как это только добавляет имена, которые не являются «q»:

String userInput = new String(); 
while (!userInput.equalsIgnoreCase("q")) 
{ 
    userInput = JOptionPane.showInputDialog("Enter type of pie"); 
    if (!userInput.equalsIgnoreCase("q")) 
    { 
     names.add(userInput); 
    } 
} 
1

Попробуйте это ...

public static void main(String[] args) throws Exception { 
    List<String> names = new ArrayList(); 
    String input = ""; 
    while (!input.equalsIgnoreCase("q")) { 
     input = JOptionPane.showInputDialog("Enter type of pie"); 
     if (!input.equalsIgnoreCase("q")) { 
      names.add(input); 
     } 
    } 

    System.out.println(names); 
}