下面是我编写的一个简单程序,它会要求输入密码。如果我输入了错误的密码,系统会提示“密码不正确,您想再试一次吗?”,如果我说不,或者其他任何不以'y'开头的东西,它将终止该程序。问题是,如果我输入正确的密码“Noah”,则表示“密码正确”,然后再次循环回“输入密码”。输入正确的密码后,如何终止此程序?谢谢。
import java.util.Scanner;
public class methods
{
public static void main (String [] args)
{
Scanner sc = new Scanner(System.in);
String response = "yes";
System.out.println("Enter password:");
while(response.charAt(0)=='y')
{
String input = sc.nextLine();
if(input.equalsIgnoreCase("Noah")==true)
{
System.out.println("Password correct");
}
else if(input.equalsIgnoreCase("Noah")==false)
{
System.out.println("Password incorrect, would you like to try again?");
response = sc.nextLine();
}
}
}
}
答案 0 :(得分:2)
使用break;
然后你可以终止。
if("Noah".equalsIgnoreCase(input)){
System.out.println("Password correct");
break;
}
答案 1 :(得分:2)
while(response.charAt(0)=='y')
{ System.out.println("Enter password")
String input = sc.nextLine();
if(input.equalsIgnoreCase("Noah")==true)
{
System.out.println("Password correct");
break;
}
else if(input.equalsIgnoreCase("Noah")==false)
{
System.out.println("Password incorrect, would you like to try again?");
response = sc.nextLine();
}
}
答案 2 :(得分:2)
有几种方法。越来越严重:
1)使用break
语句。这将使程序控制流程在while
循环结束之后。
2)使用return
语句。这将退出该功能,并在您的特定情况下,将结束该程序。
3)插入System.exit(n)
,其中n
是一个数字,可能是非零,表示返回状态。这将终止Java虚拟机,并将值n
返回给操作系统。
在你的情况下,我倾向于选择(1)或(2)。
答案 3 :(得分:1)
if(input.equalsIgnoreCase("Noah")==true)
{
System.out.println("Password correct");
break;
}
或者您可以添加response ="no";
if(input.equalsIgnoreCase("Noah")==true)
{
System.out.println("Password correct");
response ="no";
}
“no”或任何不以'y'字符开头的东西。
答案 4 :(得分:0)
经过几次修改后,我想这就是你要找的东西:
import java.util.Scanner;
公共类方法{
public static void main (String [] args){
Scanner sc = new Scanner(System.in);
String response = "yes";
while(response.charAt(0)=='y'){
System.out.println("Enter password:");
String input = sc.nextLine();
if(input.equalsIgnoreCase("Noah")==true){
System.out.println("Password correct");
break;
}
else if(input.equalsIgnoreCase("Noah")==false){
System.out.println("Password incorrect, would you like to try again?");
response = sc.nextLine();
}
}
}
}