Amir Hossein Hmd Ответов: 1

Могу ли я определить строковую переменную в цикле" for"?


Эй там, сначала я должен сказать: "я новичок, я учусь"
у меня есть вопрос, Могу ли я определить строковую переменную в цикле "for"?? но я делаю так, что моя программа не работает, а visual studio не ошибается, почему???

Что я уже пробовал:

но я делаю так, что моя программа не работает, а visual studio не ошибается, почему???

Richard MacCutchan

Скорее всего, потому, что в вашем коде есть логическая ошибка, а не синтаксическая. Пожалуйста, отредактируйте свой вопрос, покажите нам код и объясните, в чем заключается ошибка.

Karthik_Mahalingam

опубликуйте код, который вы уже пробовали.

1 Ответов

Рейтинг:
9

OriginalGriff

Вы можете определить строковую переменную в теле for петля без проблем:

for (int i = 0; i < 10, i++)
   {
   string myString = i.ToString();
   ...
   }
Но вы можете использовать строку только внутри этого тела - вы не можете использовать ее вне цикла, так как она "вне области видимости" и больше не может быть видна. Переменные могут использоваться только внутри "блока фигурных скобок", в котором они объявлены:
{ // scope of i1 starts here.
...
int i1 = 1;
...
// i2 cannot be used here.
   {  // scope of i2 starts here.
   ...
   int i2 = 2;
   ...
   } // scope of i2 ends here.
// i2 cannot be used here.
...
}  // scope of i1 ends here.


Вы также можете определить строку как управляющую переменную цикла for петля:
for (string s = "0"; s.Length < 10; s += "0")
    {
    Console.WriteLine(s);
    }
Но очевидно, что вы не можете использовать ++s или s++ в разделе" инкремент". Область действия "s" остается прежней - если она не видна коду вне цикла.

Для получения дополнительной помощи нам понадобится гораздо больше информации о том, какой именно код вы написали!