1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Не работает цикл while

Модератор: Глоб.модераторы

Ответить

Автор темы
Nute 1993
здесь недавно
здесь недавно
Сообщения: 7
Зарегистрирован: 22 фев 2023, 04:32
Имя: Анастасия
Страна: Россия
город/регион: Красноярск

Не работает цикл while

Сообщение Nute 1993 »

#include "apdefap.h"
void OnPropertyChanged(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, double value)
{
float tag1;
float tag3;
float tag5;
Float tag17;
tag1=GetTagByte("tag1"); //Return-Type: BYTE
tag3=GetTagByte("tag3"); //Return-Type: BYTE
tag5=GetTagByte("tag5"); //Return-Type: BYTE
I=GetTagByte("tag17"); //Return-Type: BYTE
i=0
While i>1
{if (tag5>tag3) SetTagByte("tag1",tag1*((tag3/tag5)+1));
}
I=i+1;
}

Программа работает так: число в поле ввода должно увеличиться при заданном условии. Цикл должен выполниться 1 раз. Но у меня почему-то ничего не увеличивается, цикл не работает, хотя условие работает, почему, что не так с программой?

ogorsv
специалист
специалист
Сообщения: 642
Зарегистрирован: 02 дек 2015, 06:57
Имя: Огородников Сергей
Страна: РФ
Благодарил (а): 136 раз
Поблагодарили: 111 раз

Не работает цикл while

Сообщение ogorsv »

Nute 1993 писал(а): 07 май 2023, 14:42 Цикл должен выполниться 1 раз
Как программа зайдёт в цикл, если
Nute 1993 писал(а): 07 май 2023, 14:42 i=0
While i>1
???
Цикл while выполняется, пока условие истинно
А если вы вручную в онлайн запишите значение i = 2, то зациклите программу
Причину предлагаю найти самостоятельно
СВ

stesl
эксперт
эксперт
Сообщения: 1035
Зарегистрирован: 31 мар 2018, 12:05
Имя: Вячеслав
Благодарил (а): 100 раз
Поблагодарили: 141 раз

Не работает цикл while

Сообщение stesl »

К вышесказанному стоит добавить
Nute 1993 писал(а): 07 май 2023, 14:42 Цикл должен выполниться 1 раз
Если твердо знать, что цикл должен выполниться 1 раз, то зачем он вообще нужен?
Заходя с другой стороны, и ставя перед собою условие, что тело цикла должно быть выполнено МИНИМУМ один раз, используют repeat/until цикл.
Ответить

Вернуться в «WinCC»