【问题标题】:If statement based on Boolean Value基于布尔值的 if 语句
【发布时间】:2015-12-21 01:38:13
【问题描述】:

我正在尝试将我在另一个类中的方法的真假返回设置为我的 if 语句的条件。我们正在创建一个密码生成器。设置密码是changeit。如果用户输入 changeit 作为原始密码,那么用户想要输入的新密码将成为密码。如果不是,则用户密码将与原始密码保持一致。如果 oldPassword 等于密码,我创建了一个返回 true 或 false 的方法。否则它将返回错误。我需要这个返回返回到我的主文件并在 if 语句中使用。请帮我!我正在发布我的 if 语句(在一个名为 Main.java 的单独文件中)和我的布尔方法(在一个名为 Password.java 的单独文件中)我的所有代码都可以工作,除了我的 if 语句

//My method in anotherfile called Password.java

public boolean checkPassword(String oldPassword) {

    if (password.equals(oldPassword)) {
        System.out.println("True");
        return true;
    } else {
        System.out.println("False");
        return false;
    }
}

//my constructor 

passwordObject.checkPassword(oldPassword);

//my if statement for main.java to show if i was able to successfully change my password.
if (checkPassword == true) {
    System.out.println("Your password change was successful");
} else {
    System.out.println("Your password change was unsucessesful");
}

【问题讨论】:

  • 我不明白你的问题。
  • 这是相当乱码。我不明白这个问题,而且代码读起来很混乱——它似乎是单独的代码段,但它的格式化方式使它看起来像在连续的段上。除了修复代码之外,请解决您的问题以澄清实际问题。
  • 我需要在真假语句中使用布尔方法的返回值。抱歉,我真的在为此苦苦挣扎,明天就要到期了
  • 不确定你的问题是什么,但你的逻辑似乎倒转了......从你的代码......如果密码 == oldPassword 它返回 true 然后打印密码成功更改!在我看来,如果您的密码 == oldPassword,那么您的密码不会更改。

标签: java if-statement methods constructor boolean


【解决方案1】:

你需要代替if (checkPassword == true)

if(passwordObject.checkPassword(oldPassword)){
    //more code

}

checkPassword 作为布尔变量无法从您的主类中访问,即使它是在您的 Password 类中设置的(事实并非如此)。

当您调用passwordObject.checkPassword(oldPassword); 时,您所做的是告诉该方法在passwordObject 的类中运行,它确实如此。但是该方法的结果(真/假)没有被保存——它意味着返回到任何调用该方法的类(在本例中为main 方法)。

分解上面的解决方案,和这样做是一样的:

boolean passwordCheckResult = passwordObject.checkPassword(oldPassword);
//above line stores whatever checkPassword returns, into passwordCheckResult

if(passwordCheckResult == true){
    //more code
}

【讨论】:

  • 那行不通。它不在主类中。它在一个单独的类中。我只是把它们放在一起
  • @Angela 你必须详细说明。如果checkPassword 在一个单独的类中(无论passwordObject 属于哪个类),这应该可以正常工作。
  • 不,这不起作用,因为它使程序运行两次检查密码,从而返回 false。我应该给你看我的两个文件吗?
  • 当我将它设置为 passwordCheckResult 时工作的 Nvm。非常感谢!!
猜你喜欢
  • 2018-09-20
  • 2013-03-01
  • 2022-01-08
  • 2021-10-16
  • 2013-03-26
  • 2021-08-03
  • 1970-01-01
  • 1970-01-01
  • 2016-11-20
相关资源
最近更新 更多