Бесконечный цикл - C# (185548)
Формулировка задачи:
Хелп, не могу избавиться от бесконечной рекурсии
public void Run2(string str,int i)
{
char c;
Stack s = new Stack();
if (str.Length % 2 == 0)
{
if (i < str.Length)
{
{
if ((str[i] == '(') || (str[i] == '[') || (str[i] == '{'))
{
s.Push(str[i]);
Run2(str, i++);
}
else if ((str[i] == ')') || (str[i] == ']') || (str[i] == '}'))
{
if (s.Count == 0)
{
MessageBox.Show("Строка не симметрична");
}
c = (char)s.Pop();
if (((c == '{') && (str[i] == '}')) ||
((c == '[') && (str[i] == ']')) ||
((c == '(') && (str[i] == ')')))
{
Run2(str, i++);
}
else
{
MessageBox.Show("Строка не симметрична");
}
}
}
if (s.Count > 0)
{
MessageBox.Show("Строка не симметрична");
}
else MessageBox.Show("Строка симметрична");
}
}
else MessageBox.Show("Строка не симметрична");
}Решение задачи: «Бесконечный цикл»
textual
Листинг программы
Run2()