Как в классе оформить что то вроде функции - C#

Узнай цену своей работы

Формулировка задачи:

Привет, всем. Такая ситуация в классе происходит последовательный расчет индекса с одинаковыми блоками кода, но разными действиями в зависимости от результата. Не получается сделать его методом и что бы он вызвался внутри своего же класса. Вот:
class Test {
        public int Count(int n) {
            int[] m = new int[n];      //Представление числа n как массив m (Пример 5 = 1 2 3 4 5)
            for (int x = 0 ; x < n; x++) {
                m[x] = x + 1;
            }
  
            int i = 0, c = 0;
            for (; ; ) {  //Бесконечный цикл
                //Блок установки индекса i
 
                for (; m[i] == 0; i++) {
                    //Блок закольцовки
                    if (i == n - 1) {
                        i = 0;
                        if ( m[i] != 0) break;
                    }
                    //Конец блока закольцовки
                }
                //Конец блока установки i
 
                //Проверка на последний элемент в массиве, i установлен
                if (m[i] != 0 & c == n - 1) return m[i];
 
                //Блок обнуления
                    //Иниацилизация индекса обнуления
                if (i == n - 1) i = 0;
                    else i++;
                /////////
                //Установка индекса обнуления
                for (; m[i] == 0; i++) {
                    if (i == n - 1) {
                        i = 0;
                        if (m[i] != 0) break;
                    }
                }  //Конец индекс обнуления установлен
 
                //Обнуление
                m[i] = 0; c++;
 
                //Конец блока обнуления
            }   
         }
       }

Решение задачи: «Как в классе оформить что то вроде функции»

textual
Листинг программы
 class Circle {
        public static int round(int i, int[] m, int x) {
            for (; m[i] == 0; i++) {
                if (i == x - 1) {
                    i = 0;
                    if (m[i] != 0) break;
                }
            } 
            return i;
        }
    }
    class Test {
        public int Count(int x) {
            int i = 0, c = 0;
            int[] m = new int[x];
            for (int x = 0; x < x; x++) {
                m[x] = x + 1;
            }
            for (; ; ) {  
                i = Circle.round(i, m, x);
                if (m[i] != 0 & c == x - 1) return m[i];
                if (i == x - 1) i = 0;
                else i++;
                i = Circle.round(i, m, x);
                m[i] = 0; c++;
           }             
        }
    }

ИИ поможет Вам:


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

Оцени полезность:

11   голосов , оценка 4.182 из 5
Похожие ответы