Форум программистов, компьютерный форум, киберфорум
Наши страницы
Arduino
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Kombo
0 / 0 / 0
Регистрация: 11.02.2020
Сообщений: 3
1

[C++] Программа не выходит из цикла

11.02.2020, 13:50. Просмотров 1718. Ответов 12
Метки нет (Все метки)

Не могу сделать так что-бы выходила программа из цикла.
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <SPI.h>
#include <MFRC522.h>
#include <SoftwareSerial.h>
unsigned long last_time3;
unsigned long last_time;
unsigned long last_time2;
int com;
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);
unsigned long uidDec, uidDecTemp;
SoftwareSerial softSerial(6, 7); // RX, TX
 
 
void setup(){
  SPI.begin();  //  инициализация SPI / Init SPI bus.
  mfrc522.PCD_Init();
  Serial.begin(9600);
  softSerial.begin(9600); 
  pinMode(13, OUTPUT);
  digitalWrite(13, HIGH);
  tone(5, 2500, 150);    
  delay(200);
  tone(5, 2500, 200);    
}
void loop(){
 
  if (softSerial.available()) {
    com = softSerial.read();
    Serial.println(com);
  }
 
  else if (com == 49) {
  for (int i = 0; i < 10; i++) {
      i += --i;
      if (millis() - last_time > 200) {
        last_time = millis();
        if (millis() - last_time2 > 5) {
          last_time2 = millis();       
        digitalWrite(13, HIGH);
        tone(5, 3000, 200);     
        delay(300);
        tone(5, 3000, 200);      
        digitalWrite(13, LOW);
        delay(300);             
         }        
        }          
      
       if ( ! mfrc522.PICC_IsNewCardPresent()) {
            return;
          }
          // Выбор метки
          if ( ! mfrc522.PICC_ReadCardSerial()) {
            return;
          }
          uidDec = 0;
          // Выдача серийного номера метки.
          for (byte i = 0; i < mfrc522.uid.size; i++)
          {
            uidDecTemp = mfrc522.uid.uidByte[i];
            uidDec = uidDec * 256 + uidDecTemp;
          }
          Serial.println("Card UID: ");
          Serial.println(uidDec); // Выводим UID метки в консоль.
          if (uidDec == 1502014861)  break;        
      }    
    }
  }
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2020, 13:50
Ответы с готовыми решениями:

Алгоритм Лемпела-Зивы. Программа не выходит из цикла
Данная программа реализует (почти) Алгоритм Лемпела-Зивы #include &lt;vector&gt; #include &lt;string&gt;...

Программа считывания литерной матрицы из текстового файла не выходит из цикла
Доброго времени суток. Программа считывания литерной матрицы из текстового файла не выходит из...

Не выходит из цикла while
почему при нажатии (-1) не выходит из цикла? #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include...

Не выходит из цикла
Хотел написать простой код для считывания введенный в консоль через пробел чисел в вектор, но...

Не выходит из цикла
Доброго времени суток! При нажатии цифры &quot;1&quot;, а затем последовательно &quot;2&quot; z должно суммировать...

12
AlexVRud
594 / 225 / 82
Регистрация: 04.07.2014
Сообщений: 632
11.02.2020, 13:58 2
Цитата Сообщение от Kombo Посмотреть сообщение
C++
1
2
for (int i = 0; i < 10; i++) {
      i += --i;
Возьми ручку и листок, посмотри что будет получаться.
1
Kombo
0 / 0 / 0
Регистрация: 11.02.2020
Сообщений: 3
11.02.2020, 14:04  [ТС] 3
Дело не в этом, компилятор спокойно пропускал.Даже сейчас это исправил всё равно не выходит.
0
ValeryS
Модератор
8063 / 5947 / 788
Регистрация: 14.02.2011
Сообщений: 20,500
Завершенные тесты: 1
11.02.2020, 20:44 4
Цитата Сообщение от Kombo Посмотреть сообщение
Дело не в этом, компилятор спокойно пропускал.
а чеб ему не пропускать? ошибок то нет
у тебя i всегда равно 0
Цитата Сообщение от Kombo Посмотреть сообщение
Даже сейчас это исправил всё равно не выходит.
покажи как
0
Kombo
0 / 0 / 0
Регистрация: 11.02.2020
Сообщений: 3
12.02.2020, 08:00  [ТС] 5
Так и нужно что-бы цикл был бесконечный.Мне нужно при определённом условии выходить из него и всё, но break почему-то не срабатывает.
0
Почтальон
Модератор
1043 / 831 / 168
Регистрация: 22.03.2015
Сообщений: 5,209
Записей в блоге: 3
Завершенные тесты: 2
12.02.2020, 10:55 6
Цитата Сообщение от Kombo Посмотреть сообщение
Так и нужно что-бы цикл был бесконечный.
У вас не самый лучший вариант цикла для этих целей, ознакомьтесь с другими
Цитата Сообщение от Kombo Посмотреть сообщение
но break почему-то не срабатывает
Как вариант - не срабатывает условие

Добавлено через 15 секунд
Цитата Сообщение от Kombo Посмотреть сообщение
Так и нужно что-бы цикл был бесконечный.
У вас не самый лучший вариант цикла для этих целей, ознакомьтесь с другими
Цитата Сообщение от Kombo Посмотреть сообщение
но break почему-то не срабатывает
Как вариант - не срабатывает условие
0
ValeryS
Модератор
8063 / 5947 / 788
Регистрация: 14.02.2011
Сообщений: 20,500
Завершенные тесты: 1
12.02.2020, 11:02 7
Лучший ответ Сообщение было отмечено Kombo как решение

Решение

Цитата Сообщение от Kombo Посмотреть сообщение
Так и нужно что-бы цикл был бесконечный.Мне нужно при определённом условии выходить из него и всё,
так бесконечный или выходить?
открой для себя while, do-while
Цитата Сообщение от Kombo Посмотреть сообщение
но break почему-то не срабатывает.
может из-за этого
Цитата Сообщение от Kombo Посмотреть сообщение
C
1
2
3
4
for (int i = 0; i < 10; i++) {
      i += --i;
  ........
   for (byte i = 0; i < mfrc522.uid.size; i++)
вложенный цикл, с той же переменной
Цитата Сообщение от ValeryS Посмотреть сообщение
у тебя i всегда равно 0
уже даже не уверен
0
locm
2397 / 1061 / 133
Регистрация: 28.10.2011
Сообщений: 3,520
Записей в блоге: 6
12.02.2020, 14:30 8
Цитата Сообщение от ValeryS Посмотреть сообщение
открой для себя while, do-while
Так и for подойдет.
C
1
for (;;)
0
Почтальон
Модератор
1043 / 831 / 168
Регистрация: 22.03.2015
Сообщений: 5,209
Записей в блоге: 3
Завершенные тесты: 2
12.02.2020, 14:43 9
Так и с GoTo можно провернуть, а смысл ?
0
locm
2397 / 1061 / 133
Регистрация: 28.10.2011
Сообщений: 3,520
Записей в блоге: 6
12.02.2020, 14:56 10
Цитата Сообщение от Почтальон Посмотреть сообщение
Так и с GoTo можно провернуть, а смысл ?
У ТС изначально цикл for и прще его подправить чем менять на другой.

Цитата Сообщение от ValeryS Посмотреть сообщение
вложенный цикл, с той же переменной
Си это допускает. Разная область видимости.
0
ValeryS
Модератор
8063 / 5947 / 788
Регистрация: 14.02.2011
Сообщений: 20,500
Завершенные тесты: 1
12.02.2020, 17:42 11
Цитата Сообщение от locm Посмотреть сообщение
Разная область видимости.
как бы знаю
а вот как отнесется к этому твой любимый отладчик
Цитата Сообщение от locm Посмотреть сообщение
У ТС изначально цикл for и прще его подправить чем менять на другой.
ТС алгоритм бы поправить
0
locm
2397 / 1061 / 133
Регистрация: 28.10.2011
Сообщений: 3,520
Записей в блоге: 6
12.02.2020, 18:19 12
Цитата Сообщение от ValeryS Посмотреть сообщение
а вот как отнесется к этому твой любимый отладчик
Нормально отнесется.
1
Миниатюры
[C++] Программа не выходит из цикла  
AlexVRud
594 / 225 / 82
Регистрация: 04.07.2014
Сообщений: 632
14.02.2020, 13:20 13
Цитата Сообщение от Kombo Посмотреть сообщение
Так и нужно что-бы цикл был бесконечный.Мне нужно при определённом условии выходить из него и всё, но break почему-то не срабатывает.
1. Функция loop() и так вызывается постоянно. Можно считать, что это выглядит как-то так:

C++
1
2
3
4
5
6
7
8
while(true) {
  служебная_функция_1();
  служебная_функция_2();
  служебная_функция_3();
  loop();
  служебная_функция_4();
  служебная_функция_5();
}
2. Нельзя делать бесконечные и долгие циклы в коде loop(), т.к. это не даёт вызывать важные функции системы.
Как следствие, вызов библиотечных функций может дать не тот результат, на который ты надеешся.

3. Воспользуйся автоматным программированием на состояниях.
1
14.02.2020, 13:20
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.02.2020, 13:20

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Не выходит из цикла
#include&lt;iostream&gt; using namespace std; float Pow(float x, int k); int main() { float...

Не выходит из цикла
После того, как вводятся 9 значений двумерного массива (матрицы), почему-то программа вместо...

Не выходит из цикла
не понимаю почему при значениях c,t,p,g не выходит из цикла. После ввода значения проверочное...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.