Как мне остановить мой код от выполнения каждого println после того, как я выполню правильный код?

Нет, похоже, что вы делаете это неправильно. Соединения MongoDB являются «клиентской стороной». Очень похоже на то, что вы сказали:

На данный момент я получаю комментарии, соответствующие моим критериям, затем выясняя все uid в этом наборе результатов, получая пользовательские объекты и объединяя их с комментариями. Похоже, я делаю это неправильно.

1) Select from the collection you're interested in.
2) From that collection pull out ID's you need
3) Select from other collections
4) Decorate your original results.

Это не «реальное» соединение, но на самом деле оно намного полезнее, чем соединение SQL, потому что вам не нужно иметь дело с дубликатом строки для «многих» сторонних объединений, вместо этого вы украшаете первоначально выбранный набор.

На этой странице много глупостей и FUD. Оказывается, 5 лет спустя MongoDB все еще есть.

0
задан gangLand 17 March 2019 в 19:13
поделиться

2 ответа

Попробуйте переключиться:

switch (operator) {
    case "+":
        result = num1 + num2;
        System.out.println("The addition result is " + result);
        break;
    case "-":
        result = num1 - num2;
        System.out.println("The subtraction result is " + result);
        break;
    case "-":
        result = num1 * num2;
        System.out.println("The multiplication result is " + result);
        break;
    case "/":
        result = num1 / num2;
        System.out.println("The integer division result is " + result);
        break;
    default:
        throw IllegalArgumentException("Unsupported operator: " + operator);
}
0
ответ дан MWB 17 March 2019 в 19:13
поделиться

Я бы инкапсулировал логику оператора (разрешение и оценку) в enum. Например,

enum Oper {
    ADDITION("+"), SUBTRACTION("-"), MULTIPLICATION("*"), DIVISION("/");
    Oper(String symbol) {
        this.symbol = symbol;
    }

    public int eval(int a, int b) {
        switch (this) {
        case ADDITION: return a + b;
        case SUBTRACTION: return a - b;
        case MULTIPLICATION: return a * b;
        case DIVISION: return a / b;
        }
        return -1;
    }

    private String symbol;

    public static Oper from(String operator) {
        for (Oper o : values()) {
            if (o.symbol.equals(operator)) {
                return o;
            }
        }
        return null;
    }
}

Это упрощает логику в main, просто разрешите оператор и оцените его. Как,

Oper o = Oper.from(operator);
System.out.printf("The %s result is %d%n", o.name().toLowerCase(), o.eval(num1, num2));
0
ответ дан Elliott Frisch 17 March 2019 в 19:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: