簡體   English   中英

在java中返回控制切換語句?

[英]Returning control to switch statement in java?

我有一個基於客戶端 - 服務器控制台的應用程序,在客戶端我使用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;

完成該過程后,我需要再次向用戶發送switch(choice)語句,要求輸入選項號。 我試過繼續回來但沒有人為我工作。 return - 將返回到我想的JVM,它正在退出程序。 由於goto沒有在Java中使用,我的替代方案是什么?

完成該過程后,我需要再次將用戶發送到switch(choice)語句

然后你需要一個循環:

while (!quit) {
    String userchoice = console.readLine("Enter your choice :"); 
    ...
    switch (...) {
        ...
    }
}
do {

...

}while(choice != EXIT_CHOICE);

其中EXIT_CHOICE是常量

您可以使用while循環,該循環將執行,直到條件為false或從內部中斷為止。

while (some condition) {
    String userchoice = console.readLine("Enter your choice :");
    ......
    if (some case is met) {
        break;
    }
}

你可以將它全部放在一個返回布爾值的方法中,如果密碼匹配則為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));

它沒有這種方式。 當你到達一個開關時,它決定(基於所評估的表達式,以及存在的選擇)這將是下一個要執行的操作,並且不做任何其他操作(這就是為什么你需要break語句以避免進入下一個操作一堆代碼)。

獲取切換到循環或被調用兩次的函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM