【问题标题】:Boolean Values and Assertions布尔值和断言
【发布时间】:2019-06-21 06:51:04
【问题描述】:

我有以下方法,如果第一个数字大于第二个数字,则返回true:

static boolean firstGreaterSecond(int x1, int x2) {
    boolean result;
    if (x1 > x2) {
        result = true;
    } else {
        result = false;
    }
    return result;
  }

我添加了以下断言:

    actual=MyClass.firstGreaterSecond(10,11);
    assert false==actual;

我被告知可以将 false== 替换为 1 个字符。我认为他们可能指的是?,如explained here,但无论我尝试了多少,我似乎都无法获得正确的语法。你能帮忙吗?

【问题讨论】:

  • 你认为我可以在那里使用Conditional Expression吗?
  • 你可以通过返回:return x1 > x2 而不是if来改进你的代码

标签: java conditional-statements assertion


【解决方案1】:

实现和断言都可以简化:

private static boolean firstGreaterSecond(int x1, int x2) {

       boolean result = x1 > x2;
        return result;
    }

actual=MyClass.firstGreaterSecond(10,11);
assert !actual;

【讨论】:

    【解决方案2】:

    首先,

    static boolean firstGreaterSecond(int x1, int x2) {
        boolean result;
        if (x1 > x2) {
            result = true;
        } else {
            result = false;
        }
        return result;
      }
    

    可以改写为:

    static boolean firstGreaterSecond(int x1, int x2) {
        return x1 > x2;
    }
    

    其次,您应该能够:

    actual=MyClass.firstGreaterSecond(10,11);
    assert !actual;
    

    看看assert docs

    断言语句有两种形式。第一种更简单的形式是:

    assert Expression1 ;

    其中 Expression1 是一个布尔表达式。什么时候 系统运行断言,它评估 Expression1,如果它是 false 抛出没有详细信息的 AssertionError。

    boolean 表达式的否定也是一个布尔表达式,因此!actual 对断言有效。

    【讨论】:

      【解决方案3】:
      boolean firstGreaterSecond(int x1, int x2) {
           return  (x1>x2)?true:false;
            }
      

      这个实现有什么问题??

      断言如下:

      actual=MyClass.firstGreaterSecond(10,11);
      assert !actual;
      

      【讨论】:

        【解决方案4】:

        我相信他们所指的替代方案是

        assert(!actual);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-02-09
          • 2013-03-23
          • 1970-01-01
          • 2011-01-29
          • 1970-01-01
          • 1970-01-01
          • 2011-04-15
          相关资源
          最近更新 更多