2012-04-10 2 views
0

100 개의 frostDays로 끝내고 싶습니다만 잘못 생각한 것 같습니다.frostDays가 존재하지 않습니다.

루프 + 배열 코드에만 해당됩니다.

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

질문과 직접적인 관련이 없습니다. 왜이 질문을 편집하여 코드 레이아웃을 다시 포맷 할 수 없습니까? 나는 보통 내가하는 것처럼 링크를 보지 못한다 ... – Shimrod

답변

2

frostDaysfor-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 번째 값을 설정하는 것입니다? 이 경우 루프 본문의 끝에 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의 인스턴스를 루프 외부에 선언하고 frostDaysfor 외부에 선언해야하므로 나중에 필요할 때 범위에 있으므로 계속 루프에 frostDays[i]을 할당해야합니다. 그렇지 않으면 길이가 100 인 0 배열입니다.

+0

'frostDays'를'nyriHiti'와 같게 설정하는 것이 좋습니다. 나는 결코 그것을 짐작하지 못했을 것이다. –

+0

아마도 의도 한 것과 가장 가깝습니다. – Polyfun

+0

ye는 기본적으로 "Day 3 was +"nyrhiti + "degrees"라고 쓰고 싶습니다. – user1144915

관련 문제