【问题标题】:Boolean Understanding [closed]布尔理解
【发布时间】:2015-05-26 19:42:20
【问题描述】:

我正在尝试解决使用布尔表达式的练习问题。我想创建一个程序来说明是否有人应该骑自行车。我有两个变量,想写一个 AND 语句和一个 OR 语句。我的两个变量是路况和温度。

编辑:在我收到的帮助下,我取得了一些进展。我在下面的第 22 行遇到了另一个问题;

// Program to decide if biking or driving to work is best

import javax.swing.*;

public class SNHU3_4Paper {

public static void main(String[] args) {

    String temperature;
    String roadCondition;

    double temp;
    double weather = 50;
    double road;
    boolean roadIsdry = true;

    temperature = JOptionPane.showInputDialog("Enter temperature outside: ");
    roadCondition = JOptionPane.showInputDialog("Is the road dry (true or false): ");

    temp = Double.parseDouble(temperature);
    road = Double.parseDouble(roadCondition);

    if (temp >= weather && road == roadIsdry)
        JOptionPane.showMessageDialog(null, "Bike to work");

    else {
        JOptionPane.showMessageDialog(null, "Drive to work");

    }

}

}

【问题讨论】:

  • 当您使用布尔值时,没有 0 或 1。只有真或假。
  • 如果您发布当前代码并准确解释您要执行的操作,将会很有帮助。

标签: java boolean


【解决方案1】:

回答你的第二个问题:I have run into another issue in Line 22 from below

您正在使用==roadIsdry(一个布尔值)与roadCondition(一个字符串)进行比较。您之前使用roadCondition 来保存用户的输入,然后对其进行解析。

在 Java 中,将基本类型(int、boolean、double 等)与使用 == 的对象进行比较几乎是行不通的。字符串是对象。 roadIsdry == roadCondition 实际上是在询问 Java “roadCondition内存地址 是否与 roadIsdry布尔值 相同?”并且总是会评估为假,因为这两个东西是不一样的,甚至没有比较的意义。

您要做的是将roadIsdry 与布尔值(truefalse)或另一个布尔变量进行比较。您也可以单独指定roadIsdryif (...) 期望有一个布尔值作为其最终值来决定遵循哪个代码分支,因此 if (roadIsdry) 是完全有效的,if (temp >= weather && roadIsdry) 也是如此。

【讨论】:

  • 我知道。我刚刚抓住了这一点,现在正在用新代码更新我的帖子。对此感到抱歉。
  • 我阅读了您的 cmets,看看您在说什么。我解决了这个问题。感谢您的帮助。
【解决方案2】:

要将道路状况表示为干燥或潮湿,布尔值就足够了。例如,一个布尔变量可以这样设置

bool road_is_dry = true;

if(road_is_dry){
  print("The road is dry");
} else {
  print("The road is wet");
}

在这种情况下,道路是干的,所以会打印“道路干”。如果相同的变量设置为 false,则道路不干(它是湿的),因此会打印“道路湿”。

这是一个条件语句示例,您可以在其中决定应该执行哪个代码块。在设置条件以使用可以组合在一起以构成简单英语句子的变量名称时,in 非常有用。然后可以将基本句子翻译成代码,然后再翻译回来。

如果选择好的变量和函数名称,那么简单的英文句子“If the road is dry, ride your bike”就可以很容易地翻译成代码,就像这样

if(road_is_dry){
  ride_bike();
}

【讨论】:

    猜你喜欢
    • 2012-07-10
    • 2021-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多