2013-10-09 87 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); }