2009-07-18 19 views

答えて

4

最初の例は、変数 "i"を再定義しようとすると、どの言語でも機能しません。ループ制御ではintですが、ループ本体にはstringです。最も簡単な解決策は、(C#の場合)配列を使用することで、あなたの更新の質問に基づいて

:それは言語で利用可能な場合

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

evalのいくつかの並べ替えを使用してください。

0

これは言語によって異なります。

一般的に、これを行うには、キー名と関連する値を格納するハッシュテーブル/辞書/マップなどのデータ構造を使用するのが適切です。

3

明らかに、これは言語に大きく依存します。ほとんどの言語では、それは不可能です。 JavaScriptでは、ブラウザ、次の作品に:

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

変数SQ3、例えば、あなたはおそらく配列を使用したい9.

+0

@Malvolio:+1丁寧な回答 –

11

に設定されています。私は(私は、Javaの男だ)彼らは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 
関連する問題