2009-04-07 129 views
0

我在這裏有一個代碼,我希望它會顯示前10個,如果我點擊它,它會再次顯示第二批。我首先嚐試使用我的第一個代碼,它現在工作我正在處理數組它看起來不接受它for循環模量(%)

我評論的那個人不工作?這是錯的嗎? 謝謝

long [] potenzen = new long[32]; 
potenzen[0] = 1; 

for (int i = 1; i < potenzen.Length; ++i) 
{ 
    potenzen[i] = potenzen[i-1] * 2; 
    //if (potenzen % 10 == 0) 
    // Console.ReadLine(); 
} 

foreach (long elem in potenzen) 
{ 
    Console.WriteLine(" " + elem); 
} 

回答

4
long [] potenzen = new long[32]; 
potenzen[0] = 1; 
for (int i = 1; i < potenzen.Length; ++i) 
{ 
    potenzen[i]=potenzen[i-1]*2; 
    Console.WriteLine(potenzen[i-1]); 
    if (i % 10 == 0) 
    Console.ReadLine(); 
} 

更符合你想要的。一種改進是將數據操縱邏輯與數據顯示邏輯分開。

long [] potenzen = new long[32]; 
potenzen[0] = 1; 
for (int i = 1; i < potenzen.Length; ++i) 
    potenzen[i]=potenzen[i-1]*2; 

for (int i = 0; i < potenzen.Length; ++i) 
{ 
    Console.WriteLine(potenzen[i]); 
    if (i % 10 == 0) 
    Console.ReadLine(); 
} 

當然,你可以做到這一點沒有

long potenzen = 1; 
for (int i = 1; i < 32; ++i) 
{ 
    Console.WriteLine(potenzen); 
    potenzen = potenzen * 2; 
    if (i % 10 == 0) 
    Console.ReadLine(); 
} 
3

將模數運算符應用於長數組是可疑的。

+0

感謝您的輸入。所以模數運算符並不真正用於數組的長整型? – tintincutes 2009-04-07 19:00:12

+0

數組是一個對象。模運算符僅適用於數字基元類型。 http://msdn.microsoft.com/en-us/library/0w4e0fzs.aspx – Will 2009-04-07 19:19:32

4

您需要:

if (i % 10 == 0) 

,而不是:

if (potenzen % 10 == 0) 
2

potenzen是一個數組,所以你也許嘗試

if (i % 10 == 0) 

也許

if (potenzen[i] % 10 == 0) 
1

你把一個數組國防部10的陣列 - 充其量,在不安全的語言,你會做模運算在內存地址上。

這應該正常工作,如果你只需要改變的行:

// if you don't want to pause the first time you run it, replace with: 
// if (i > 0 && i % 10 == 0) { 
if (i % 10 == 0) { 
    Console.ReadLine(); 
} 
1

嘗試將其更改爲:眼下

long [] potenzen = new long[32]; 
potenzen[0] = 1; 
Console.WriteLine(potenzen[0]); 
for (int i = 1; i < potenzen.Length; ++i) 
{ 
    potenzen[i]=potenzen[i-1]*2; 
    Console.WriteLine(potenzen[i]); 
    if (i % 10 == 0) 
    { 
     var s = Console.ReadLine(); 
     // break if s == some escape condition??? 
    } 
} 

,你永遠打印,除非你徹底完成你的第一個for循環。我的猜測是,你不允許完整的32個元素,所以你永遠不會看到你的結果 -

這將打印他們,因爲他們去。