在 JAVA 中另一个条件



让用户只尝试 3 次,之后他得到他的帐户暂停我试图要求用户提供最终密码 3 次,如果他不这样做,它会给他他的帐户暂停,如果正确,会给他一条光鲜消息。


package EE;
import java.util.Scanner;
public class test {
public static void main(String[] args) {
final String password= "Test";
Scanner sc = new Scanner(System.in);
System.out.println("Please enter the password: ");
String pass = sc.next();
for (int i=0; i<2;) {
if (!pass.equals (password))
i++;
System.out.println("Try again! ");
String pass1 = sc.next();
if(pass.equals( password))
System.out.println("Welcome");
String pass2 = sc.next();
if (i == 2)
System.out.println("Sorry, your account is suspened");      
}
}}

正如 Alea 所评论的那样,您需要在if语句中的块周围使用大括号{ ... }

for (int i=0; i<2;) {
if (!pass.equals (password))
i++;
System.out.println("Try again! ");
String pass1 = sc.next();
if(pass.equals( password))
System.out.println("Welcome");
String pass2 = sc.next();
if (i == 2)
System.out.println("Sorry, your account is suspened");
} 

实际上意思是这样的:

for (int i = 0; i < 2; ) {
if (!pass.equals(password)) {
i++;
}
System.out.println("Try again! ");
String pass1 = sc.next();
if (pass.equals(password)) {
System.out.println("Welcome");
}
String pass2 = sc.next();
if (i == 2) {
System.out.println("Sorry, your account is suspened");
}
}

一旦我们正确缩进了代码并在编译器期望它们的位置添加了大括号,我们就可以开始看到一些问题。

例如:

  1. 当密码正确时,不会i增加任何内容。 这意味着i < 2不会是真的,循环会一直循环,兜兜转转。

  2. 每次循环迭代调用next()两次。

等等。

现在我可以为您重写代码1. 但你不会从中学到很多东西。 (您将通过自己编写代码,犯错误并发现并纠正它们来学习最好的东西......你自己!

相反,我将建议您阅读有关橡皮鸭调试技术的信息。 这听起来像个笑话,但事实并非如此。 这是一种以幽默方式解释的重要技术。 这就是我被教导的调试程序的方法,早在我 18 岁学习编程2时。

Rubber Duck调试背后的想法是帮助您了解计算机如何"思考"。 一旦你能做到这一点,编程就会变得容易得多。 这就是为什么我强烈建议你自己做!

无论如何,一旦你可以可视化代码做错了什么,那么下一步就是弄清楚它应该做什么。


1 - 首先,它会更快!

2 - 虽然我们当时没有用这个名字来称呼它。 我们称之为手工执行,我们用铅笔和纸完成。 一般在旧电脑打印输出的背面。 是的,很久以前。 在那些日子里,我们没有调试器或IDE。 这是卡片打孔和 20 分钟的等待才能取回打印输出!

相关内容

  • 没有找到相关文章

最新更新