Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Просьба пояснить код / 14 сообщений из 14, страница 1 из 1
12.10.2016, 15:37
    #39325418
BKV88
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просьба пояснить код
Добрый день.
Просьба пояснить следующий код

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
int i, j;
            bool done = false;

            for (i=0, j=100;!done;i++,j--)
                {
                    if (i * i > j) done = true;
                    Console.WriteLine("i, j:" + i + " " + j);
                }



Он успешно выполняется. Интересует почему в цикле !done изначально происходит выполнение.
Вроде переменной done присвоено значение false а в цикле условие с оператором НЕ, которое по идеи менять на true или я что-то не так понимаю.
...
Рейтинг: 0 / 0
12.10.2016, 15:41
    #39325424
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просьба пояснить код
Цикл выполняется пока условие true
...
Рейтинг: 0 / 0
12.10.2016, 15:47
    #39325431
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просьба пояснить код
for (Справочник по C#)

С помощью цикла for можно циклически выполнять оператор или блок операторов до тех пор, пока указанное выражение не будет являться false .

Соответсвенно для Вашего примера цикл будет выполняться, пока выражение !done не будет являться false .
...
Рейтинг: 0 / 0
12.10.2016, 15:48
    #39325432
BKV88
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просьба пояснить код
Pallaris,
Спасибо.
...
Рейтинг: 0 / 0
12.10.2016, 15:48
    #39325435
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просьба пояснить код
BKV88, а теперь внимание вопрос: когда выражение !done будет равно false?
...
Рейтинг: 0 / 0
12.10.2016, 15:54
    #39325442
BKV88
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просьба пояснить код
skyANA,

До момент когда выполнится условие if (i * i > j) и переменной присвоится значение done = true;
...
Рейтинг: 0 / 0
12.10.2016, 16:00
    #39325449
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просьба пояснить код
BKV88, вот видите, прочитав первую строку из документации и задавшись одним единственным вопросом, можно было не создавать тему на форуме :)
...
Рейтинг: 0 / 0
12.10.2016, 17:08
    #39325512
BKV88
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просьба пояснить код
skyANA,

Спасибо.
А просьба пояснить еще один момент. Программа выводит четные цифры.

Пример 1

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
  for (int i = 0; i <= 10; i++)
            {
                if ((i % 2) != 0) continue;
                

                    Console.WriteLine(i);

                
            }



Пример 2

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
 for (int i = 0; i <= 10; i++)
            {
                if ((i % 2) != 0)
                {

                    Console.WriteLine(i);
                }
                
            }



Почему Console.WriteLine(i); в любом случае выполняется если даже заключить этот оператор в {} разве он не должен выполнятся только во внутреннем блоке
...
Рейтинг: 0 / 0
12.10.2016, 17:11
    #39325515
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просьба пояснить код
Что означает
Код: c#
1.
if ((i % 2) != 0)


?
...
Рейтинг: 0 / 0
12.10.2016, 17:20
    #39325528
BKV88
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просьба пояснить код
Dima T,

С начало вычисляется остаток отделения если он не равен 0 значит число не четное
Все эти примеры в книге Герберта Шилдта
...
Рейтинг: 0 / 0
12.10.2016, 17:25
    #39325538
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просьба пояснить код
В первом примере выводит четные, во втором - нечетные
...
Рейтинг: 0 / 0
12.10.2016, 17:36
    #39325548
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просьба пояснить код
BKV88Dima T,

С начало вычисляется остаток отделения если он не равен 0 значит число не четное
Все эти примеры в книге Герберта Шилдта
И как это согласуется с
BKV88А просьба пояснить еще один момент. Программа выводит четные цифры.

Раз написал в коде "если нечетное то вывести", то так оно и работает.
...
Рейтинг: 0 / 0
12.10.2016, 17:42
    #39325553
BKV88
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просьба пояснить код
Dima T,

Да все правильно, что-то совсем запутался во всем этом.
...
Рейтинг: 0 / 0
12.10.2016, 20:12
    #39325656
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просьба пояснить код
for - зло

Это недемократичный способ, который предполагает жесткое следование назначенным шагам
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Просьба пояснить код / 14 сообщений из 14, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]