В то время как код, метод, Int для логического понимания - PullRequest
1 голос
/ 05 августа 2020

Я просматриваю какой-то код для задания в колледже, и нам дали примеры, которые нам помогут. Я немного смущен тем, что делает ниже, поскольку он использует оператор присваивания вместо метода .equals или ==.

Если я заменю код на == (и создам локальную переменную для сравнения это к) код начинает бесконечный цикл и отображает значение по умолчанию. принять входные данные, равные 3, например System.exit0, на этом этапе.

Правильно ли я понял?

(Дальнейший пример по запросу) Я бы сделал что-то вроде:

int select = 0; 
int select1 = 0; 
    do {

    switch (select) {
        case 1:
            Problem();
            break; 
        default:
        System.out.println("Invalid");
        break;
        } 
 } while (select == select1);

Я пытаюсь придумать логический эквивалент примера с лекторами, но, похоже, не могу сделать это, не нарушив while l oop.

1 Ответ

4 голосов
/ 05 августа 2020

В java, (и других «C подобных» языках) результатом присваивания является присвоенное значение, ie этот код:

do {
    // other code
} while ((select = getSelection()) !=3)

совпадает с:

do {
    // other code
    select = getSelection();
} while (select != 3)

Этот стиль, известный как in-line conditional , обычно считается стилем, которого следует избегать.

Для него существует нарушение стиля проверки - см. AvoidInlineConditionals

...