2013-10-09 30 views
0

我试图学习4种类型的循环,for,foreach,while和do。我做了迄今为止代码:C#帮助,无法从4个循环获取名称列表

Loops.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(); 
     } 
    } 
} 

的Program.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(); 
     } 
    } 
} 

我认为有一些缺点,但该方案目前可以编译,但它只是使黑屏。

谢谢你的时间。

+6

你试过调用的创建'Loop'对象之后,你的方法吗? – dtb

+0

如何调试以查看发生了什么? – roqz

回答

4

既然这样,你就构造了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" ... }; 

至于另一不谈,在您的两个循环方法,你递增索引变量两次每次迭代中,只应打印出每一个其他元素。

1

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

地址:

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

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


    Console.WriteLine(); 
    Console.ReadLine(); 
} 
0

你的foreach将无法工作。当你声明一个新的名字为int []。使您的foreach可以在声明列表中使用。您应该使用

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