2014-12-05 3 views
0

У меня возникли проблемы с работой моей программы. Я довольно простой в этом и не имею большого опыта с тем, что это моя первая программа, проблема в том, что цикл для JOptionPane не заканчивается, JOptionMenu вы поднимаетесь и спрашиваете меня, чтобы добавить, найти или Покажите все записи, и независимо от моего ввода, он говорит «Have Nice Day», но не заканчивается и возвращается к списку добавления, поиска или отображения всех записей JOtion. Я предполагаю, что мое кодирование немного, и, возможно, это ошибка в другом месте кода, но любая помощь с этим была бы удивительной и сильно оцененной!Java JOption in loop

public static void main(String[] args) { 

    // variable declarations // 
    boolean loopagain=true; 

    // declare strArg as String // 
    String strArg; 
    String strMenu; 
    char strArgs; 

    // declare strMenu as String and Assign a string that creates a menue as follows: 

    *     [A]dd record 

    *     [F]ind record 

    *     [S]how All records // 

    strMenu = " [A]dd record\n " + 
       " [F]ind record\n " + 
       " [S]how All records\n "; 


    if (args.length == 0){ 


    while (loopagain) { 


    strArg = JOptionPane.showInputDialog(null, strMenu ,"Menu" 
            , JOptionPane.QUESTION_MESSAGE); 


    strArg = strMenu.toUpperCase(); 
    strArgs = strArg.toUpperCase().charAt(0); 


    if (args.length > 0){ 

    switch (strArgs) { 
     case 0: 
     if (strArgs == 'A') 
     addRec(); 
     break; 

     case 1: 
     if (strArgs == 'F') 
     findRec(); 
     break; 

     case 2: 
     if (strArgs == 'S') 
     showAll(); 
     break; 

     default: 
     errMessage(); 


      // end of switch // 
    } 

      // end of strArg test // 
      // otherwise, if no entry, run an errMessage() method //   errMessage(); 

      // end of loop // 
     break; 
    } 

      /** exit program with the MessageDialog "Have a Noce Day!" */ 
     JOptionPane.showMessageDialog(null, "Have a Nice Day!"); 

      // end of args test // 
    } 
      // end of main() method // 
    } 


public static void errMessage() { 
     JOptionPane.showMessageDialog(null, "Invalid Menu Choice"); 

}

// create a method named loopquery() 
// - that returns a boolean value 
// - accepts no arguments 
// - content: 
//  - declaration of a boolean variable initialized to false 
//  - an InputDialog that requests if you want to loopagain (y,n)and assigns the value to a string variable 
//  - converts the String variable to upper case 
//  - changes the value of the boolean variable to true if the string variable has a value of "Y" 
//  - returns the value of the boolean variable 
// 

public static void loopquery() { 
String loopquery; 
boolean loopagain; 
loopagain=false; 

loopquery = JOptionPane.showInputDialog(null, "Another table (y.n)", 
          "Again?", JOptionPane.QUESTION_MESSAGE); 

loopquery = loopquery.toUpperCase(); 

}

public static void addRec() { 
    JOptionPane.showMessageDialog(null, "AddRec"); 

}

public static void findRec() { 
    String findrecs; 

    findrecs = JOptionPane.showInputDialog(null, "Request a record" ,"Record" 
       , JOptionPane.QUESTION_MESSAGE); 
       System.out.println("FindRec: " + findrecs); 

}

public static void showAll() { 
    JOptionPane.showMessageDialog(null, "ShowAll"); 

} }

+0

Не могли бы вы отредактировать код в своем вопросе в [MCVE] (http://stackoverflow.com/help/mcve)? – fxm

+0

Java и JavaScript - это не одно и то же, что у вас есть тег JavaScript и заголовок Java – deme72

+0

Связано ли это с javascript? возможно, ОР хотел написать JAVA? – briosheje

ответ

0
while (loopagain) { 
... 


... 
     JOptionPane.showMessageDialog(null, "Have a Nice Day!"); 

     // end of args test // 
} 

это должно быть

do{ 
... 


... 

}while(loopquery()); 

JOptionPane.showMessageDialog(null, "Have a Nice Day!"); 

    // end of args test // 

, что вы сделали было установлено loopagain к истине и никогда не изменить его так, что это будет цикл infinately также выходное сообщение было в неправильное место

0

Ваша ошибка:

if (args.length == 0) { 
    while (loopagain) { 
     strArg = JOptionPane.showInputDialog(null, strMenu, "Menu", JOptionPane.QUESTION_MESSAGE); 
     strArg = strMenu.toUpperCase(); 
     strArgs = strArg.toUpperCase().charAt(0); 

     if (args.length > 0) { 
      // ... 
      break; // you never get here, so you never break loop 

Вы имеете в виду использовать args? Это массив аргументов командной строки. Если это length == 0, это не будет length > 0. Поскольку вы никогда не входите в этот блок, вы никогда не прерываете цикл.