[英]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.