Дмитрий
Дмитрий

C# методы - использование параметров

Есть вот такой код. Не могу понять как работает подсчет.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

1. class chKnum
2. {
3. public bool IsPrime(int x)
4. {
5. if (x <= 1) return false;
6. for (int i = 2; i <= x / i; i++)
7. if ((x % i) == 0) return false;
8. return true;
9.
10. }
11. }
12.
13. class pardemo
14. {
15. static void Main ()
16. {
17. chKnum ob = new chKnum ();
18.
19. for (int i = 2; i <= 10; i++)
20. if (ob.IsPrime(i)) Console.WriteLine(i + " prostoe 4islo ");
21. else Console.WriteLine(i + " ne prostoe 4islo ");
22. Console.ReadLine();
23. }
24.
25. }

Понимаю что программа начинается с класса pardemo 13-ая строка кода далее идет счетчик и метод if передает методу ob.Isprime значение 2 далее кода направляется в класс chknum строка кода 1 и далее в метод isprime if ( x<=1) return false - это выполняется - переходим в сл. метод строка кода 6-ая ( буду сразу подставлять значение как я понял for (int i = 2; i(2) <= x(2) / i(2); i++) - тут получается что все выполняется и в сл. обращении к методу i будет инкрементирована. А вот тут в строке кода 7 не пойму, опять же подставляю значения как я понял if ((x(2) % i(2)) == 0) return false; - после очередного обращения к коду как я понимаю что х что i будут одинаково увеличены на единицу и всегда будет тру - помогите пожалуйста разобраться в коде.

ДП
Дмитрий Попов

Метод IsPrime проверяет число простое оно или нет. То есть делится только на себя. В цикле перебираются все цифры от 2 до числа-1. Совершается деление. Если остаток при делении равен нулю, то число делится. Возвращается false сразу и метод завершается. Если цикл проходит до конца и завершается, то число не делилось ни на одно др, значит число простое и возвращается true. Программа начинается с main метода строка 15. Потом создается объект, в котором в данном случае нет смысла. Лучше сделать static метод, привязанный к классу, а не к объекту, если на то пошло.

После return метод возвращает результат. Если был return false, то до return true уже дело не дойдет.

Похожие вопросы
C# Решить уравнение методом Ньютона
C#, вопрос о методах.
Помогите написать метод для c# IsDigit
C++ использование нескольких функций.
C++. Использование нескольких форм
C++ Функция с произвольным числом параметров
C++ Параметры функции через шаблоны
конструктор с параметрами c++
Использование переменной при создании переменной C#
C++ Не работает метод