为了账号安全,请及时绑定邮箱和手机立即绑定

JAVA中另一个条件

JAVA中另一个条件

婷婷同学_ 2023-09-27 14:58:35
让用户只尝试 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");          }}}
查看完整描述

1 回答

?
桃花长相依

TA贡献1860条经验 获得超8个赞

您需要{ ... }在语句中的块周围使用大括号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

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

不管怎样,一旦你能想象出代码哪里出了问题,下一步就是弄清楚它该做什么。


1 - 一开始会更快!

2 - 虽然我们当时并没有叫它这个名字。我们称之为手工执行,我们用铅笔和纸来完成。通常在旧计算机打印输出的背面。是的,很久以前了。那时,我们没有调试器或 IDE。需要打卡并等待 20 分钟才能取回打印输出!


查看完整回答
反对 回复 2023-09-27
  • 1 回答
  • 0 关注
  • 94 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信