0

次のコードを使用して、3回実行されるループと、3つの年齢層のスイッチを作成する必要があり0-10 11-20ます。21-65

class Program
    {
        private static object N;
        static void Main(string[] args)
        {
            string answer;                                   
            {
              Console.WriteLine("please enter your name:");
              string name = Console.ReadLine();

              Console.WriteLine("please enter your surname:");
              string surname = Console.ReadLine();

              Console.WriteLine("please enter your age:");
              string age = Console.ReadLine();        

              Console.WriteLine("please enter your adress:");
              string adress = Console.ReadLine();

              Console.WriteLine("hallo,{0} {1},veel sucess met C#", name, surname);

              Console.WriteLine("zijn deze gegevens juist? J/N");
              answer = Console.ReadLine();
            }
            while(answer == "N");
        }
   }      

年齢をテストするためにいくつかのことを試みましたが、常にエラーが発生しました。また、ループコードを正しく書く方法がわかりません。

誰かが両方の問題について正しい方向に私を向けることができますか?

英語が下手でごめんなさい、私はオランダ語です。

注:回答の1つで言及されているOPは、これは宿題ではないということです。

4

3 に答える 3

1

Switchステートメントは範囲ではなく特定の値で動作するため、if代わりにシリーズステートメントを使用することをお勧めします。

カウンター(ループの外側で宣言され、実行ごとにインクリメントされる)を使用して、ループが実行された回数を判別します(またはループを使用しforます)。

編集

class Program
{
    private static object N;

    static void Main(string[] args)
    {
        string answer;
        int runCount= 0;

        do
        {
          ++runCount;
          Console.WriteLine("please enter your name:");
          string name = Console.ReadLine();

          Console.WriteLine("please enter your surname:");
          string surname = Console.ReadLine();

          Console.WriteLine("please enter your age:");
          int age = int.Parse(Console.ReadLine());

          if(age >= 0 && age <= 10)
          {
              Console.WriteLine("Child");
          }
          else if(age <= 20)
          {
              Console.WriteLine("Young adult");
          }
          else if(age <= 65)
          {
              Console.WriteLine("Adult");
          }

          Console.WriteLine("please enter your adress:");
          string adress = Console.ReadLine();

          Console.WriteLine("hallo,{0} {1},veel sucess met C#", name, surname);

          Console.WriteLine("zijn deze gegevens juist? J/N");
          answer = Console.ReadLine();
        }
        while(runCount < 3 && answer == "N");
    }
}
于 2012-10-19T07:50:52.647 に答える
1

おそらく次のようなものが必要です。

var ageGroups = new [] { "0-10",  "11-20", "21-65"};

foreach(var ageGroup in ageGroups)
{
    // do your thing. This will loop three times, once for each age group
    // example of switch (but: code-smell, you probably want class hierarchy later)
    switch(ageGroup)
    {
        case "0-10":
         // do somethihg
         break;
    }
}

または、MrFox が言うように、定義済みの年齢層がない場合 (ただし、質問にはそれが表示されません)、次のようになります。

for(var i = 0; i < 3; i++)
{
    // do your thing
    // example of if-statement for range (cannot do with switch):
    int convertedAge;
    if(int.TryParse(age, out convertedAge))
    {
        if(convertedAge >= 0 && convertedAge <= 10)
        {
             // do your thing
        }
    }
}
于 2012-10-19T07:54:26.997 に答える
0

インターフェイスは多言語対応で、ユーザー向けのテキストの一部は英語で書かれており、他のテキストはオランダ語で書かれており、決心したり、ユーザーが自分の言語を選択したりできます。

プログラミング スキルに関しては、一般的な C# 構造をググるべきです。また、このコースはとても良いです。最後に、プログラマーとして、出身国に関係なく、英語を学んだほうがよいでしょう。

class Program
{
    static int age;
    static void Main(string[] args)
    {
        string answer;
        do
        {
            Console.WriteLine("please enter your name:");
            string name = Console.ReadLine();

            Console.WriteLine("please enter your surname:");
            string surname = Console.ReadLine();

            Console.WriteLine("please enter your age:");
            age = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("please enter your adress:");
            string adress = Console.ReadLine();

            Console.WriteLine("hallo,{0} {1},veel sucess met C#", name, surname);

            Console.WriteLine("zijn deze gegevens juist? J/N");
            answer = Console.ReadLine();
        }
        while (answer == "N");

        for (int i = 0; i < 3; i++)
        {
            if (age >= 0 && age <= 10)
            {
                // First age group.
            }
            if (age >= 11 && age <= 20)
            {
                // Second age group.
            }
            if (age >= 21 && age <= 65)
            {
                // Third age group.
            }
        }
    }
}

編集:whileループを正しくするためのdoがあることに感謝します。forループがどこに行くべきかは私にはわかりません。

于 2012-10-19T08:03:36.357 に答える