26

C# で Do .. While ループを作成するにはどうすればよいですか?

(編集: 私は C# に移行しようとしている VB.NET プログラマーなので、.NET / VB 構文の経験があります。ありがとう!)

4

8 に答える 8

51

一般的な形式は次のとおりです。

do
{
   // Body
} while (condition);

conditiontype の式はどこにありますかbool

個人的には、do/while ループを書くことはめったになく、経験for上、foreachストレートwhileループの方がはるかに一般的です。後者は次のとおりです。

while (condition)
{
    // body
}

whileとの違いはdo...while、最初のケースでは、最初から条件が false の場合は本体が実行されないことですが、後者の場合は、条件が評価される前に常に一度実行されます。

于 2010-03-29T15:17:48.840 に答える
8

VB.NET から来たとおっしゃっていたので、このリンクをチェックして比較を表示することを強くお勧めします。また、このWeb サイトを使用して VB を C# に、またはその逆に変換することもできます。そのため、既存の VB コードで遊んで、C# でどのように見えるかを確認できます。

ループの質問に答えるには、次のようにします。

while(condition)
{
   DoSomething();
}

また、次のようにすることもできます。

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

これは、私が使用して成功した別のコード トランスレータと、別の優れた C#->VB 比較 Web サイトです。幸運を!

于 2010-03-29T15:40:49.073 に答える
6
//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);
于 2010-03-29T15:14:30.557 に答える
2

do..while構文の古典的な例についてまだ誰も言及していないことは非常に驚くべきことです。Do..whileは、コードを実行したり、何かをチェックまたは検証したりする方法です(通常、そのコードの実行中に何が起こったかによって異なります)。結果が気に入らない場合は、最初からやり直してください。これは、いくつかの制約に適合するユーザー入力が必要な場合にまさに必要なものです。

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

これは非常に一般的な形式です。条件が十分に単純な場合、それを計算するメソッドを使用するのではなく、ループ構造(「while」キーワードの後の角かっこ内)に直接配置するのが一般的です。

この使用法の重要な概念は、ユーザー入力を少なくとも1回要求する必要があるということです(最良の場合、ユーザーは最初の試行で正しく入力を取得します)。そして、体が少なくとも一度実行されるまで、状態は実際にはあまり意味がありません。これらのそれぞれは、仕事のためのツールですが、両方を一緒にすることはほぼ保証です。

于 2010-03-29T15:36:40.300 に答える
1

いくつかの数値を出力する簡単な例を次に示します。

int i = 0;

do {
  Console.WriteLine(++i);
} while (i < 10);
于 2010-03-29T15:17:18.343 に答える
1
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++;
        }
    }
}
于 2010-03-29T15:18:18.313 に答える
0

Anthony Pegram の回答とは別に、ループに入る前に状態をチェックする while ループも使用できます。

while (someCriteria)
{
    if (someCondition)
    {
        someCriteria = false;
        // or you can use break;
    }
    if (ignoreJustThisIteration)
    {
        continue;
    }
}
于 2010-03-29T15:18:35.990 に答える