2

私はクライアント サーバー コンソール ベースのアプリケーションを持っています。クライアント側では、アップロード/ダウンロード/パスワードの変更などのオプションを選択するために switch ステートメントを使用しました。

      String userchoice = console.readLine("Enter your choice :"); 
      int choice= Integer.parseInt(userchoice);
      switch (choice){  
      case 3: 
      ........
      Socket soc = new Socket("localhost", 6007);
      String reply;
      String client = username;
      char newpswd[] = console.readPassword("Enter your new Password :");
      String newpwd=new String(newpswd);
      char newpswd1[] = console.readPassword("Confirm your new Password :");
      String newpwd1=new String(newpswd1);
      if(newpwd.equals(newpwd1)) {
      ........
      }
      else {
      S.O.P ("Passwords don't match");  
      }
      break;

プロセスが終了したら、ユーザーに再度 (choice) ステートメントを切り替えて、入力するオプション番号を要求する必要があります。continuereturnを試しましたが、うまくいきませんでした。return - JVM に戻り、プログラムを終了します。goto は Java で使用されていないため、私の代替手段は何ですか?

4

5 に答える 5

7

プロセスが終了したら、ユーザーに switch (choice) ステートメントを再度送信する必要があります

次に、ループが必要です。

while (!quit) {
    String userchoice = console.readLine("Enter your choice :"); 
    ...
    switch (...) {
        ...
    }
}
于 2012-10-04T09:59:19.217 に答える
5
do {

...

}while(choice != EXIT_CHOICE);

EXIT_CHOICE は定数です

于 2012-10-04T10:00:23.697 に答える
0

条件が false になるまで、または内部から壊れるまで実行される while ループを使用できます。

while (some condition) {
    String userchoice = console.readLine("Enter your choice :");
    ......
    if (some case is met) {
        break;
    }
}
于 2012-10-04T10:00:08.000 に答える
0

パスワードが一致した場合は true、そうでない場合は false というブール値を返すメソッドにすべてを入れることができます。次に、次のようなものを使用できます。

boolean loginSuccess = false;
while (!loginSuccess) {
    loginSuccess = loginMethod();
}

編集

または、doループを使用できます...

do {
    String userchoice = console.readLine("Enter your choice :"); 
    int choice= Integer.parseInt(userchoice);
    switch (choice){  
    case 3: 
    ........
    Socket soc = new Socket("localhost", 6007);
    String reply;
    String client = username;
    char newpswd[] = console.readPassword("Enter your new Password :");
    String newpwd=new String(newpswd);
    char newpswd1[] = console.readPassword("Confirm your new Password :");
    String newpwd1=new String(newpswd1);
} while (!newpwd.equals(newpwd1));
于 2012-10-04T10:00:42.390 に答える
0

このようには機能しません。スイッチに到達すると、(評価された式と存在する選択肢に基づいて) 実行する次の操作を決定し、それ以上何もしません (そのbreakため、次の束に遭遇するのを避けるためにステートメントが必要です)コードの)。

スイッチをループまたは 2 回呼び出される関数に入れます。

于 2012-10-04T10:01:28.720 に答える