Немного размышлений | Работая более десяти лет, я ни разу не использовал Do-While!

Java

Недавно я просматривал базовые знания Java, и некоторые из них касаются циклов, в Java синтаксис циклов делится на 3 типа:for,while,do-while,Как показано ниже:

Но я был удивлен, обнаружив, что в своей предыдущей карьере (11 лет) я никогда не использовалdo-while(смущенно), поэтому я спросил у друзей в группе и обнаружил, что мало кто ей пользуется.

синтаксический анализ do-while

Давайте сначала разберемся с синтаксисом do-while:

do {
     // statements
} while (expression);

Уведомление:Нельзя опускать последнюю точку с запятой, иначе будет выдана ошибка компиляции.

Поток его выполнения показан на следующем рисунке:Так где именно он используется?

сценарии использования do-while

После долгих поисков и консультаций я наконец нашел два относительно удовлетворительных сценария использования, давайте рассмотрим их вместе.

Используйте сценарий 1: возьмите билеты

Для бизнеса захвата билетов, независимо от того, является ли он 3721, сначала захватите его, а затем оцените, был ли захват билетов успешным.Если захват билетов прошел успешно, выйдите из цикла, в противном случае продолжите выполнение захвата билетов.Реализован псевдокод как следует:

do {
    // 抢票代码...
} while (没抢到票);

Поставщик идей: г-н Цзя

Используйте сценарий 2: двоичное преобразование

После долгих поисков было обнаружено, что в исходном коде JDK также есть небольшое количество применений.do-whileСцена, напримерIntegerВ бинарном преобразовании соответствующий исходный код следующим образом:

static int formatUnsignedInt(int val, int shift, char[] buf, int offset, int len) {
    int charPos = len;
    int radix = 1 << shift;
    int mask = radix - 1;
    do {
        buf[offset + --charPos] = Integer.digits[val & mask];
        val >>>= shift;
    } while (val != 0 && charPos > 0);

    return charPos;
}

Например, этот метод выполнит преобразование из десятичного числа в двоичное.В бизнесе двоичного преобразования, независимо от ситуации, будет выполнено хотя бы одно двоичное преобразование, поэтому этот бизнес-сценарий очень подходит.do-while.

Суммировать

Конфуций сказал: пересмотрите старое и изучите новое. После того, как мы узнали много знаний, мы возвращаемся назад и размышляем над ними, и находим их очень интересными — это одна из величайших радостей знания. В этой статье мы вводим дваdo-whileсценарии использования, захват билетов и преобразование системы, что еще вы знаете?do-whileСценарии использования? Добро пожаловать на область комментариев, чтобы сказать мне ~

Подпишитесь на официальный аккаунт «Java Chinese Community» и отправьте «Интервью», чтобы получить последние материалы обзора интервью, которые я собрал.