2012-04-10 402 views
0

我想結束100 frostDays但我想我說錯了。frostDays does not exist

它只有一個for循環+數組代碼。

for (int i = 0; i < 100; i++) 
{ 

    System.Random RandNum = new System.Random(); 
    int nyrHiti = RandNum.Next(-10, 50); 
    Console.WriteLine(nyrHiti); 
    int[] frostDays = new int[100]; 

} 

Console.ReadLine();      

Console.WriteLine(frostDays[0]); 
Console.ReadLine(); 
+0

沒有(直接)與問題相關,ut爲什麼我不能編輯這個問題來重新設置代碼佈局的格式?我沒有看到鏈接,因爲我通常會這樣做...... – Shimrod 2012-04-10 13:07:40

回答

2

這不會起作用,因爲frostDays具有本地範圍的for-loop。它必須在循環之外聲明才能被Console.WriteLine(...)使用。但是,它將會充滿0,所以我不確定你打算在這裏做什麼。

1

你的數組是在循環中聲明的,它的可見性被限制在這個循環中。在循環之外聲明它,它將起作用。

int[] frostDays = new int[100]; 

for (int i = 0; i < 100; i++) 
{  
    System.Random RandNum = new System.Random(); 
    int nyrHiti = RandNum.Next(-10, 50); 
    Console.WriteLine(nyrHiti); 
} 
Console.ReadLine(); 

Console.WriteLine(frostDays[0]); 
Console.ReadLine(); 

但是,由於您不做任何事情,因此每次都會返回0。也許你想要的是將製表符的i th值設置爲你剛選擇的隨機數?在這種情況下,請在循環體的末尾使用frostDays[i] = nyrHiti

0

您必須在循環外定義frostDays。

6

我不知道你在做什麼,但你的代碼中有幾個常見的錯誤,我們可以很容易地修復:

System.Random RandNum = new System.Random(); 
int[] frostDays = new int[100]; 
for (int i = 0; i < 100; i++) { 
    int nyrHiti = RandNum.Next(-10, 50); 
    Console.WriteLine(nyrHiti); 
    frostDays[i] = nyrHiti; 
} 
Console.ReadLine(); 

Console.WriteLine(frostDays[0]); 
Console.ReadLine(); 

這可能讓你接近你的原意。你需要在循環外部聲明你的實例Random,並且在for之外聲明frostDays,所以當你需要之後它仍然在範圍內,並且你需要在循環中指定frostDays[i],否則它只是長度爲100的零數組。

+0

設置'frostDays'等於'nyriHiti'的猜測。我從來不會猜到這一點。 – 2012-04-10 13:01:24

+0

可能最接近想要的東西。 – Polyfun 2012-04-10 13:02:52

+0

你們基本上我想寫,「第3天是」+ nyrhiti +「度」謝謝。 – user1144915 2012-04-10 13:25:45

相關問題