Булевы значения и утверждения - PullRequest
0 голосов
/ 28 января 2019

У меня есть следующий метод, который возвращает 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 символ.Я думаю, что они могут иметь в виду?, Как в объяснено здесь , но независимо от того, сколько я пытался, я не могу получить правильный синтаксис.Не могли бы вы помочь?

Ответы [ 4 ]

0 голосов
/ 28 января 2019

И реализация, и утверждение могут быть упрощены:

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

       boolean result = x1 > x2;
        return result;
    }

actual=MyClass.firstGreaterSecond(10,11);
assert !actual;
0 голосов
/ 28 января 2019

Ну, во-первых,

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 и, если оно ложно, выдает ошибку AssertionError без подробного сообщения.

Отрицание выражения boolean также является логическим выражением, следовательно, !actualбыть действительным для утверждения.

0 голосов
/ 28 января 2019
boolean firstGreaterSecond(int x1, int x2) {
     return  (x1>x2)?true:false;
      }

Что не так в этой реализации ??

Assert будет выглядеть так:

actual=MyClass.firstGreaterSecond(10,11);
assert !actual;
0 голосов
/ 28 января 2019

Я считаю, что альтернатива, на которую они ссылаются, это

assert(!actual);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...