2009-07-18 3 views

답변

4

첫 번째 예는 변수 "i"를 다시 정의하려고 할 때 어떤 언어에서도 작동하지 않습니다. 루프 컨트롤에 int이지만 루프 본문에 string이 있습니다. 이 언어를 사용할 수있는 경우 eval

string[] s = new string[10]; 
for (int i; i< 10; i++) 
{ 
    s[i] = "abc"; 
} 
0

사용 어떤 종류 :

는 업데이트 된 질문을 바탕으로 가장 쉬운 해결책은 (C#에서) 배열을 사용하는 것입니다.

0

언어에 따라 다릅니다.

일반적으로 사람들이 이것을 원할 때 올바른 것은 키 이름과 관련 값을 저장하는 해시 테이블/사전 /지도와 같은 데이터 구조를 사용하는 것입니다.

3

분명히 이것은 언어에 크게 의존합니다. 대부분의 언어에서는 불가능합니다. 자바 스크립트에서, 브라우저, 다음 작품 :

for (var i = 0; i<10 ; i++) { window["sq"+i] = i * i; } 

은 이제 변수 SQ3, 예를 들어, 9. 당신은 아마 배열을 사용하려면

+0

@Malvolio : +1 좋은 답변 –

11

로 설정됩니다. 그들은 C#을 (내가 자바 사람이야)에서 작동하는 방법을 내가 정확히 모르겠지만, 이런 식으로 뭔가 그것을 수행해야합니다

string[] s = new string[10]; 
for (int i; i< 10; i++) 
{ 
    s[i] = "abc"; 
} 

그리고 http://msdn.microsoft.com/en-us/library/aa288453(VS.71).aspx

+3

+1 도대체 OP가 얘기하고있었습니다. –

3

당신은 사전을 사용할 수 있습니다 읽어 보시기 바랍니다. 키 - 객체 값의 동적 이름 - 객체

 Dictionary<String, Object> dictionary = new Dictionary<String, Object>(); 
     for (int i = 0; i <= 10; i++) 
     { 
      //create name 
      string name = String.Format("s{0}", i); 
      //check name 
      if (dictionary.ContainsKey(name)) 
      { 
       dictionary[name] = i.ToString(); 
      } 
      else 
      { 
       dictionary.Add(name, i.ToString()); 
      } 
     } 
     //Simple test 
     foreach (KeyValuePair<String, Object> kvp in dictionary) 
     { 
      Console.WriteLine(String.Format("Key: {0} - Value: {1}", kvp.Key, kvp.Value)); 
     } 

출력 :

Key: s0 - Value: 0 
Key: s1 - Value: 1 
Key: s2 - Value: 2 
Key: s3 - Value: 3 
Key: s4 - Value: 4 
Key: s5 - Value: 5 
Key: s6 - Value: 6 
Key: s7 - Value: 7 
Key: s8 - Value: 8 
Key: s9 - Value: 9 
Key: s10 - Value: 10 
관련 문제