我正在尝试使用 else if 语句来验证电子邮件,但是它会在 else if(password.isEmpty) 上抛出错误,说“else without if”

Posted

技术标签:

【中文标题】我正在尝试使用 else if 语句来验证电子邮件,但是它会在 else if(password.isEmpty) 上抛出错误,说“else without if”【英文标题】:I am trying an else if statement for validation email however it throws an error on else if(password.isEmpty) saying "else without if" 【发布时间】:2021-09-02 03:48:55 【问题描述】:

@覆盖 受保护的无效 onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.activity_main);

    Tmail = findViewById(R.id.login_email);
    Tpass = findViewById(R.id.login_password);
    Tconfirmpass = findViewById(R.id.loginRetype_password);
    Bar = findViewById(R.id.bar);
    button = findViewById(R.id.signin);

    mAuth = FirebaseAuth.getInstance();
    button.setOnClickListener(new View.OnClickListener() 
        @Override
        public void onClick(View v) 

            String email, password, confirm;

            email = Tmail.getEditText().getText().toString().trim();
            password = Tpass.getEditText().getText().toString().trim();
            confirm = Tconfirmpass.getEditText().getText().toString().trim();

            if (email.isEmpty())
                Tmail.getEditText().setError("Field should not be empty");
                Tmail.requestFocus();
            
            else if (!Patterns.EMAIL_ADDRESS.matcher(email).matches());
                Tmail.setError("Please enter a valid email Id");
                Tmail.requestFocus();
            
           else if (password.isEmpty())
                Tpass.setError("Please enter password");
                Tpass.requestFocus();
             else if (password.length() < 6) 
                Tpass.setError("Password too short");
                Tpass.requestFocus();
             else if (!confirm.equals(password)) 
                Tconfirmpass.setError("Password mismatch");
                Tconfirmpass.requestFocus();
             else mAuth.createUserWithEmailAndPassword(email, password)
    .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() 
        @Override
        public void onComplete(@NonNull Task<AuthResult> task) 
            if (task.isSuccessful()) 
                // Sign in success, update UI with the signed-in user's information
                Log.d(TAG, "createUserWithEmail:success");
                FirebaseUser user = mAuth.getCurrentUser();
                updateUI(user);
             else 
                // If sign in fails, display a message to the user.
                Log.w(TAG, "createUserWithEmail:failure", task.getException());
                Toast.makeText(EmailPasswordActivity.this, "Authentication failed.",
                        Toast.LENGTH_SHORT).show();
                updateUI(null);
            
        
    );

            
        
    );


【问题讨论】:

【参考方案1】:

请正确格式化您的代码。

删除else if (!Patterns.EMAIL_ADDRESS.matcher(email).matches()); 行中的分号,您应该一切顺利。

【讨论】:

以上是关于我正在尝试使用 else if 语句来验证电子邮件,但是它会在 else if(password.isEmpty) 上抛出错误,说“else without if”的主要内容,如果未能解决你的问题,请参考以下文章

使用 if else 语句来操作日期

表单验证灯箱 php if/else 语句

为啥我不能使用正则表达式来评估 if...else 语句 [重复]

在C#程序中用if-else语句判断只能输入英文、空格、小数点的验证方法。

变量在我的if else语句中没有更新

Python Selenium:使用 css,我如何制作 if else 语句?