Для конструкций разрыва цикла
Привет Эксперты
Я видел for loop в приведенной ниже манере так много раз, но я не понимаю логики, стоящей за этим, чтобы использовать его таким образом.
for(int i=2;i<=num/2;i++)
Почему мы делим num/2 как разрыв цикла?
В приведенной ниже программе оба дают один и тот же результат, но почему в первом подходе мы будем использовать num/2?
//First Approach public static void IsPrimeNumber1(int num) { int Count=0; for(int i=2;i<=num/2;i++) { if(num%2==0) { Count++; break; } } if(Count==0 && num!=1) { Console.WriteLine("Prime Number"); } else { Console.WriteLine("Not Prime Number"); } } //Second Approach public static void IsPrimeNumber2(int num) { int i=2; for( i=2;i<=num-1;i++) { if(i%num==0) { Console.WriteLine("Not Prime Number"); break; } } if (num == i) { Console.WriteLine("Prime Number"); } else { Console.WriteLine("Not Prime Number"); } }
Спасибо
Динеш Шарма
Что я уже пробовал:
Я попытался найти логику деления на 2 в качестве цикла для разрыва.
PIEBALDconsult
Эти две функции делают очень разные вещи.
Первый не делает того, что предполагает его название, а цикл for не делает ничего, кроме пустой траты времени.
Второй делает это, но одним из наименее эффективных способов.
Patrice T
Нет, второй тоже тратит время впустую, потому что тест делается задом наперед
тест должен быть сделан с num%i
вместо i%num
BillWoodruff
Ваш код запутан, глючит; это наводит меня на мысль, что вы не изучаете основы программирования на C# должным образом. Не чувствуйте себя "плохо" из-за этого ... все здесь когда-то были новичками, и мы учимся на своих ошибках !
Я настоятельно рекомендую вам получить хороший .NET book, как и (бесплатный, онлайновый pdf-файл, который вы можете скачать) книга ".NET Book Zero" Чарльза Петцольда:
http://www.charlespetzold.com/dotnet/
И сделайте тщательное изучение глав.
Patrice T
Вопрос предполагает, что ОП не является автором кода.
BillWoodruff
Тем больше причин для ОП получить хорошую книгу и приступить к работе ! :)
Patrice T
вот почему я предоставил ссылки на книгу K&R в своем ответе.