Сделать.. Цикл с условием продолжения в C#?

Как я пишу.. Цикл с условием продолжения в C#?

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

23
задан Jon Schneider 15 December 2017 в 18:00
поделиться

7 ответов

Помимо ответа Энтони Пеграма, вы также можете использовать цикл while, который проверяет условие ДО входа в цикл

while (someCriteria)
{
    if (someCondition)
    {
        someCriteria = false;
        // or you can use break;
    }
    if (ignoreJustThisIteration)
    {
        continue;
    }
}
0
ответ дан 29 November 2019 в 01:01
поделиться
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++;
        }
    }
}
1
ответ дан 29 November 2019 в 01:01
поделиться

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

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

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

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

2
ответ дан 29 November 2019 в 01:01
поделиться

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

int i = 0;

do {
  Console.WriteLine(++i);
} while (i < 10);
1
ответ дан 29 November 2019 в 01:01
поделиться

Общая форма:

do
{
   // Body
} while (condition);

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

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

while (condition)
{
    // body
}

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

49
ответ дан 29 November 2019 в 01:01
поделиться

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

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

while(condition)
{
   DoSomething();
}

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

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

Вот другой переводчик кода , который я успешно использовал, и еще один отличный сайт сравнения C # -> VB . Удачи!

7
ответ дан 29 November 2019 в 01:01
поделиться
//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);
6
ответ дан 29 November 2019 в 01:01
поделиться
Другие вопросы по тегам:

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