Подтвердить что ты не робот

Do.. While loop in С#?

Как написать Do.. While loop in С#?

(Edit: Я программист VB.NET, пытающийся сделать переход на С#, поэтому у меня есть опыт работы с синтаксисом .NET/VB. Спасибо!)

4b9b3361

Ответ 1

Общий вид:

do
{
   // Body
} while (condition);

Где condition - некоторое выражение типа bool.

Лично я редко пишу do/while - for, foreach и прямые циклы while гораздо чаще встречаются в моем опыте. Последнее:

while (condition)
{
    // body
}

Разница между while и do...while заключается в том, что в первом случае тело никогда не будет выполняться, если условие будет ложным для начала, тогда как в последнем случае он всегда выполняется один раз до того, как условие будет когда-либо оценено.

Ответ 2

Поскольку вы упомянули, что пришли из VB.NET, я настоятельно рекомендую проверить эту ссылку, чтобы показать сравнения. Вы также можете использовать этот, чтобы конвертировать VB в С# и наоборот - чтобы вы могли играть с существующим кодом VB и видеть, как он выглядит в С#, включая петли и все остальное под сыном.

Чтобы ответить на вопрос цикла, вы просто хотите сделать что-то вроде:

while(condition)
{
   DoSomething();
}

Вы также можете сделать - пока:

do
{
   Something();
}
while(condition);

Здесь другой переводчик кода Я использовал с успехом, и другой отличный С# → сайт сравнения VB. Удачи!

Ответ 3

//remember, do loop will always execute at least once, a while loop may not execute at all
//because the condition is at the top
do
{
  //statements to be repeated
} while (condition);

Ответ 4

Вот простой пример, который будет печатать некоторые числа:

int i = 0;

do {
  Console.WriteLine(++i);
} while (i < 10);

Ответ 5

using System;

class MainClass
{
    public static void Main()
    {
        int i = 0;
        do
        {
            Console.WriteLine("Number is {0}", i);
            i++;
        } while (i < 100);
    }
}

Другим методом будет

using System;

class MainClass
{
    public static void Main()
    {
        int i = 0;
        while(i <100)
        {
            Console.WriteLine("Number is {0}", i);
            i++;
        }
    }
}

Ответ 6

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

bool CheckInput(string input) { ... }
...
string input;
...
do {
  input=Console.ReadLine();
} while(!CheckInput(input));

Это довольно общая форма: когда условие достаточно простое, оно обычно помещается непосредственно в конструкцию цикла (внутри скобок после ключевого слова "while" ), вместо того, чтобы иметь метод для вычисления.

Ключевыми понятиями в этом использовании являются то, что вы должны запрашивать ввод пользователя хотя бы один раз (в лучшем случае пользователь получит его с первой попытки); и что условие действительно не имеет особого смысла, пока тело не выполнило хотя бы один раз. Каждый из них - хорошие подсказки, которые делают... в то время как инструмент для работы, оба они вместе являются гарантией.

Ответ 7

Помимо ответа Anthony Pegram, вы также можете использовать цикл while, который проверяет состояние перед тем, как попасть в цикл

while (someCriteria)
{
    if (someCondition)
    {
        someCriteria = false;
        // or you can use break;
    }
    if (ignoreJustThisIteration)
    {
        continue;
    }
}