在java中返回控制到开关语句?
我有一个基于客户机-服务器控制台的应用程序,在客户机端,我使用switch语句选择选项,例如当用户输入一个数字进行设置时,上传/下载/更改密码等在java中返回控制到开关语句?,java,loops,Java,Loops,我有一个基于客户机-服务器控制台的应用程序,在客户机端,我使用switch语句选择选项,例如当用户输入一个数字进行设置时,上传/下载/更改密码等 String userchoice = console.readLine("Enter your choice :"); int choice= Integer.parseInt(userchoice); switch (choice){ case 3: ........
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;
完成该过程后,我需要再次发送用户切换(选择)语句,要求输入选项号。我尝试了继续,返回,但没有一个对我有效return-我想将返回JVM,它正在退出程序。由于goto不在Java中使用,我的替代方案是什么
在这个过程完成之后,我需要再次发送user to switch(choice)语句
然后需要一个循环:
while (!quit) {
String userchoice = console.readLine("Enter your choice :");
...
switch (...) {
...
}
}
您可以使用while循环,该循环将一直执行,直到其条件为false或从内部中断为止
while (some condition) {
String userchoice = console.readLine("Enter your choice :");
......
if (some case is met) {
break;
}
}
如果EXIT_CHOICE是一个常量,您可以将其全部放在一个返回布尔值的方法中,如果密码匹配,则返回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
语句来避免运行到下一组代码中)
将开关放入一个循环或一个被调用两次的函数中
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));