8.х Для По Цикл

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Kurt_89, 2 апр 2011.

  1. TopicStarter Overlay
    Kurt_89
    Offline

    Kurt_89 Опытный в 1С

    Регистрация:
    2 апр 2011
    Сообщения:
    85
    Симпатии:
    0
    Баллы:
    26
    Массив = Новый Массив();
    Для Строка = 0 По Строка < 12 Цикл
    Сообщить(Строка);
    КонецЦикла;

    Выводить почему то только первые две строки. Почему так и как быть?
    0
    1
    А дальше молчит...
  2. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Код:
    Для Строка = 0 по 12 Цикл
    Сообщить(Строка);	
    КонецЦикла;
    
    А вообще у массивов есть функция определения верхней границы.
    Код:
    Для Индекс = 0 по Массив.ВГраница() Цикл
    Сообщить(Массив[Индекс]);
    КонецЦикла;
    
    
  3. Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    Для меня так более привычно:
    Код:
    Для Индекс = 0 по Массив.Количество()-1 Цикл
    Сообщить(Массив[Индекс]);
    КонецЦикла;
    
    И более универсально, т.к. подходит для всех объектов.
  4. Oleg_NSK
    Offline

    Oleg_NSK Опытный в 1С

    Регистрация:
    25 окт 2010
    Сообщения:
    164
    Симпатии:
    0
    Баллы:
    26
    Вы наверное после C++ на 1с перешли.
    "Строка < 12" преобразуется в значение истина, а истина в свою очередь в единицу. Поэтому такой цикл пройдется только 2 раза для 0 и для 1. Поэтому, пардон... Такой вот у нас язык синтаксически бедный.

Поделиться этой страницей