0

我正在尝试学习 4 种类型的循环,for、foreach、while 和 do。到目前为止,我已经制作了这段代码:

循环.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LoopFrame
{
    class Loops
    {
        // attribute (not property)
        private List<string> names;

        // constructor
        public Loops()
        {
            // initilize
            names = new List<string>();

            //insert values
            names.Add("Peter");
            names.Add("Susanne");
            names.Add("Steen");
            names.Add("Mohammed");
            names.Add("Poul");
            names.Add("Ebbe");
            names.Add("Henrik");
            names.Add("Per");
            names.Add("Anders");
            names.Add("Lars");
            names.Add("Vibeke");
            names.Add("Mogens");
            names.Add("Michael");
        }

        //
        // 4 loop methods
        //
        // all should print out the whole list 'names'
        //

        public void WhileLoop()
        {
            int x = 0;

            while (x < names.Count)
            {
                Console.WriteLine(names[++x]);
            }
        }

        public void DoWhileLoop()
        {
            int x = 0;
            do
            {
                Console.WriteLine(names[++x]);
                x++;
            } while (x < names.Count);
        }

        public void ForLoop()
        {
            for (int x = 0; x < 0; x++)
            {
                Console.WriteLine(names[++x]);          
            }
        }

        public void ForeachLoop()
        {
            int[] names = new int[] { 0 };
            foreach (int element in names)
            {
                System.Console.WriteLine(element);
            }
            System.Console.WriteLine();
        }
    }
}

程序.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LoopFrame
{
    class Program
    {
        static void Main(string[] args)
        {
            Loops loops = new Loops();
            Console.WriteLine();
            Console.ReadLine();
        }
    }
}

我认为有一些故障,但程序目前可以编译,但它只是黑屏。

感谢您的时间。

4

3 回答 3

3

就目前而言,您正在构建Loops实例,但您没有调用任何方法。

static void Main(string[] args)
{
    Loops loops = new Loops();
    loops.WhileLoop();
    loops.DoWhileLoop();
    loops.ForLoop();
    loops.ForeachLoop();
    Console.WriteLine();
    Console.ReadLine();
}

您可能需要阅读Methods

顺便说一句,您可以用更少的代码填充您的列表:

names = new List<string> { "Peter", "Suzanne", "Steen" ... };

另外,在您的两个循环方法中,每次迭代都会将索引变量增加两次,这应该只打印出每个其他元素。

于 2013-10-09T09:28:17.520 回答
0

你的 foreach 将不起作用。当您将新名称声明为 int[] 时。使您的 foreach 可与声明的列表一起使用。你应该使用

foreach(string s in names) { Console.WriteLine("Name is : "+s); }

于 2013-10-09T09:35:19.217 回答
0

您没有调用任何应该打印列表内容的方法。

添加:

static void Main(string[] args)
{
    Loops loops = new Loops();

    //Call methods
    loops.WhileLoop();
    loops.DoWhileLoop();
    //...


    Console.WriteLine();
    Console.ReadLine();
}
于 2013-10-09T09:28:05.673 回答