1

我需要帮助让该程序在第一次运行后在其自身中循环。它询问用户是否要编码、解码或退出。程序运行,它像它应该的那样编码/解码。我现在需要让另一个窗格弹出并询问他们的用户是否想要编写另一个输入,然后循环遍历它第一次运行的所有内容。我有一个窗格,它询问用户是否要再次运行但无法让它循环通过编码器。

public void encoding()
{
    int userChoice;
    int i;
    int p=1;
    int counter=0;
    counter++;
    String fin = "";

    String input = JOptionPane.showInputDialog("Want to ENCODE, DECODE or EXIT? Press 
    1, 2, or 3");
    userChoice = Integer.parseInt(input);    


    if (userChoice == 1 )
            {
                String encode = JOptionPane.showInputDialog(null, "What Are We 
                Encoding? ");

                char[] array = encode.toCharArray();      

                for(i=0; i <array.length; i++)
                    {                            
                        char Ecode = encode.charAt(i);
                        Ecode--;
                        Ecode--;
                        fin += Character.toString(Ecode);

                    }         

                JOptionPane.showMessageDialog(null, fin);
            }       

        else if (userChoice == 2)
            {
                    String decode =JOptionPane.showInputDialog(null, "What Are We 
                    Decoding? ");

                    char[] array1 = decode.toCharArray();

                    for(i=0; i < array1.length; i++)
                    {              
                        char Dcode = decode.charAt(i);
                        Dcode++;
                        Dcode++; 
                        fin += Character.toString(Dcode);
                    }

                JOptionPane.showMessageDialog(null,fin);

                    String again = JOptionPane.showInputDialog("Want to code another?
                    Press 1 or 2");

                    int aChoice = Integer.parseInt(again);

                    if (aChoice==1)
                        { 
                            System.out.print("bob"); 
                        }

                    else 
                        {
                            JOptionPane.showMessageDialog(null, "Good Bye");
                            System.exit(0);
                        }
            }
4

2 回答 2

2

包装你的代码开始int i; 并包含if-else block在一个do-while循环中:

      do{
         int i;
         int p=1;
         .....
         .....
      }while(userChoice != 3);

请注意:这不会让您退出,直到您输入3.

当用户输入 1,2 或 3 以外的任何内容时,您可能需要添加另一个块来处理条件。

或者,您可以这样做:

      do{
         String input = JOptionPane.showInputDialog...
         .....
         .....
       }while(userChoice == 1 || userChoice == 2);

这将退出除 1 或 2 之外的任何选择的循环。

编辑:请在下面找到固定代码:

public void encoding(){
    int userChoice, i;
    do{
        String fin = "";
        String input = JOptionPane
            .showInputDialog("Want to ENCODE, DECODE or EXIT? Press 1, 2, or 3");
        userChoice = Integer.parseInt(input);    

        if (userChoice == 1 ){
        String encode = JOptionPane.showInputDialog(null, "What Are We Encoding?");
        char[] array = encode.toCharArray();      
        for(i=0; i <array.length; i++){                            
        char Ecode = encode.charAt(i);
        Ecode--;
        Ecode--;
        fin += Character.toString(Ecode);
        }         
        JOptionPane.showMessageDialog(null, fin);
    } else if (userChoice == 2) {
        String decode =JOptionPane.showInputDialog(null, "What Are We Dencoding?");
            char[] array1 = decode.toCharArray();
            for(i=0; i < array1.length; i++){              
       char Dcode = decode.charAt(i);
       Dcode++;
       Dcode++; 
       fin += Character.toString(Dcode);
    }
    JOptionPane.showMessageDialog(null, fin);
     }
    }while(userChoice != 3);
    JOptionPane.showMessageDialog(null, "Good Bye");
    System.exit(0);
   }
于 2012-10-22T23:41:17.383 回答
1

您可以将JOptionPane输入 + 完整的相应if块包含在一个while循环中:

int userChoice = 0;
while (userChoice != 3) {

  int i;
  int p=1;
  // the rest of the params here

   String input = JOptionPane.showInputDialog(...)
   ...
}
于 2012-10-22T23:41:27.243 回答