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 blockdo-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 に答える