Как написать Do .. While loop in C#?Do .. While loop in C#?
(Edit:.! Я программист VB.NET пытается сделать переход к C#, так что у меня есть опыт работы с .NET/VB синтаксис Спасибо)
Как написать Do .. While loop in C#?Do .. While loop in C#?
(Edit:.! Я программист VB.NET пытается сделать переход к C#, так что у меня есть опыт работы с .NET/VB синтаксис Спасибо)
//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);
Ваше условие не является булевым выражением ... –
@Jon Skeet - извините, я обычно VB – BlackICE
do {} while (true); –
Вот простой пример, который будет напечатать некоторые цифры:
int i = 0;
do {
Console.WriteLine(++i);
} while (i < 10);
общая форма:
do
{
// Body
} while (condition);
Где condition
некоторое выражение type bool
.
Лично я редко пишу делать/в то время как петли - for
, foreach
и прямыми while
петли гораздо более распространены в моем опыте. Последнее:
while (condition)
{
// body
}
Разница между while
и do...while
является то, что в первом случае тело будет никогда будет выполняться, если условие ложно, чтобы начать с - в то время как в последнем случае это всегда выполняется один раз перед условие всегда оценивается.
И это ключ. Если вы хотите, чтобы это гарантированное первое время выполнялось, используйте do-while. В противном случае, хотя это действительно лучший подход. –
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++;
}
}
}
спасибо за ясное объяснение –
Помимо ответа Энтони Пеграм, вы можете также использовать время цикла, который проверяет состояние, прежде чем попасть в петлю
while (someCriteria)
{
if (someCondition)
{
someCriteria = false;
// or you can use break;
}
if (ignoreJustThisIteration)
{
continue;
}
}
Довольно удивительно, что никто еще не упомянул классический пример построения do..while. Do..while путь, когда вы хотите запустить какой-то код, проверить или проверить что-то (обычно в зависимости от того, что произошло во время выполнения этого кода), и если вам не нравится результат, начните заново. Это именно то, что вам нужно, когда вы хотите, чтобы некоторые пользовательского ввода, который соответствует некоторым ограничениям:
bool CheckInput(string input) { ... }
...
string input;
...
do {
input=Console.ReadLine();
} while(!CheckInput(input));
Это довольно общая форма: когда условие достаточно просто, это общее, чтобы поместить его непосредственно на конструкции петли (внутри скобки после ключевого слова «while»), вместо того, чтобы иметь метод для его вычисления.
Ключевыми понятиями в этом использовании являются то, что вы должны запросить ввод пользователя хотя бы один раз (в лучшем случае пользователь получит его с первой попытки); и что условие действительно не имеет особого смысла, пока тело не выполнило хотя бы один раз. Каждый из них - хорошие подсказки, которые делают ... в то время как инструмент для работы, оба они вместе являются почти гарантией.
Поскольку вы упомянули, что пришли из VB.NET, я настоятельно рекомендую проверить this link, чтобы показать сравнения. Вы также можете использовать this wensite для преобразования VB в C# и наоборот - чтобы вы могли играть с существующим кодом VB и видеть, как он выглядит на C#, включая циклы и все остальное под сыном.
Чтобы ответить на вопрос петлю, вы просто хотите сделать что-то вроде:
while(condition)
{
DoSomething();
}
Вы также можете сделать - в то время как это:
do
{
Something();
}
while(condition);
Вот another code translator я с успехом, и another great C#->VB comparison website. Удачи!
спасибо за ссылки на страницу сравнения .. это именно то, что мне нужно –
MSDN - это золотая жила для таких вопросов. C# 'do' ключевое слово: http://msdn.microsoft.com/en-us/library/370s1zax(VS.80).aspx –
Поскольку вы работаете с VB.NET, ознакомьтесь с некоторыми из ссылок, которые я предоставил ниже, чтобы увидеть синтаксические сравнения для циклов, а также что-нибудь еще, что вам понадобится ниже. – dferraro