我正在学习java,这是我的代码
import java.util.Scanner;
public class Application {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter Password");
String value = input.nextLine();
if(value.equals("mycat")){
System.out.println("Password Accepted!");
System.out.println("My Personal Number is: ");
System.out.println("blahblah");
}
else
System.out.println("Incorrect Password!");
}
}
我想继续说错误的密码并允许输入另一个而不是停止。基本上我想要循环,但是当我这样做时,我得不到我想要的结果。
答案 0 :(得分:3)
Scanner input = new Scanner(System.in);
do
{
System.out.println("Enter Password");
String value = input.nextLine();
if(value.equals("mycat")){
System.out.println("Password Accepted!");
System.out.println("My Personal Number is: ");
System.out.println("blahblah");
}
else
System.out.println("Incorrect Password!");
} while(!value.equals("mycat"))
input.close();
将代码包含在Try-Catch块中。
答案 1 :(得分:2)
import java.util.Scanner;
public class Application {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String value;
System.out.println("Enter Password");
value = input.nextLine();
while(!value.equals("mycat")) {
System.out.println("Incorrect Password!");
System.out.println("Enter Password");
value = input.nextLine();
}
System.out.println("Password accepted"); // if you are here then the password is good
}
答案 2 :(得分:1)
考虑使用功能来处理密码获取:
String getPassword(/*you might need to pass input as a parameter*/)
{
while (true){ /*an infinite loop*/
String value = input.nextLine();
if (value.equals("mycat")){
return value;
}
System.out.println("Incorrect Password!");
}
}
这可以帮助您扩展程序,只需对getPassword
的调用者进行最少的更改:
远离硬编码"mycat"
使用专为密码建模设计的特殊对象。 String
是不安全的,因为数据在一个连续的块中。
引入最大数量的试验,可能有延迟循环。
答案 3 :(得分:1)
Java中有两个不同的while循环。
do {
//Code here
} while (/*Condition here */)
和
while (/*Condition here */) {
//Code here
}
第一个测试括号中的代码执行后的条件,第二个测试之前的测试。
这意味着使用do { } while()
您在第一次检查条件之前运行一次代码,这就是您想要的。
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String value;
do{
System.out.println("Enter Password");
value = input.nextLine();
if(value.equals("mycat")){
System.out.println("Password Accepted!");
System.out.println("My Personal Number is: ");
System.out.println("blahblah");
}
else
System.out.println("Incorrect Password!");
} while (!value.equals("mycat"))
}
像这样的东西可能就是你想要的东西