Зацикливание в вызове функции - C#
Формулировка задачи:
Совсем недавно начала изучать язык С# и столкнулась с такой проблемой:
когда вызываю функцию, она работает правильно, находит нужный мне элемент, но почему-то вызывается еще раз и в итоге данные обнуляются т.е. доходя до оператора return функция не заканчивает свою работу.
Код момента вызова функции поиска (SearchElement):
Функция поиска:
Листинг программы
- private void button3_Click(object sender, EventArgs e)
- {
- Form1 newForm1 = this.Owner as Form1;
- if (newForm1.perem.Root == null)
- {
- MessageBox.Show("Данных в базе нет");
- }
- else
- {
- Справочник_Автоинспектора.Form1.Node<int> elem;
- elem = null;
- elem=newForm1.perem.SearchElement(newForm1.perem.Root , Convert.ToInt32(maskedTextBox2.Text));
- if (elem != null)
- {
- maskedTextBox4.Text = Convert.ToString(elem.power);
- maskedTextBox3.Text = Convert.ToString(elem.year);
- maskedTextBox5.Text = Convert.ToString(elem.mileage);
- maskedTextBox1.Text = Convert.ToString(elem.date);
- comboBox1.Text = Convert.ToString(elem.brand);
- }
- }
- }
Листинг программы
- public Node<T> SearchElement(Node<T> CurrentElem, int iscom)
- {
- Node<T> vozvrat=null;
- if (CurrentElem==null)
- {
- MessageBox.Show("Элемента не существует в базе!");
- vozvrat = null;
- }
- else if (Convert.ToInt32(CurrentElem.number) == iscom)
- {
- vozvrat = CurrentElem;
- }
- else if (Convert.ToInt32(CurrentElem.number) < iscom)
- {
- SearchElement(CurrentElem.left, iscom);
- }
- else if (Convert.ToInt32(CurrentElem.number) > iscom)
- {
- SearchElement(CurrentElem.right, iscom);
- }
- return (vozvrat);
- }
Решение задачи: «Зацикливание в вызове функции»
textual
Листинг программы
- public Node<T> SearchElement(Node<T> CurrentElem, int iscom)
- {
- if (CurrentElem == null)
- return null;
- if (Convert.ToInt32(CurrentElem.number) == iscom)
- return CurrentElem;
- if (Convert.ToInt32(CurrentElem.number) < iscom)
- return SearchElement(CurrentElem.left, iscom);
- else
- return SearchElement(CurrentElem.right, iscom);
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д