У вас есть пара циклов «Do» («До» («Num = 10» »,« Do Пока »(« флаг = 0 »)»), которые никогда не остановятся, поэтому, когда программа нажмет на них, она войдет в бесконечный «бесконечный цикл». ».
Вы писали:
Do While (Flag = 0)
Loop
... но вам нужен некоторый код между этими двумя строками, который изменит значение Flag на что-то отличное от 0, иначе компьютер не сможет когда-либо выполнить это условие, и он будет безрезультатно зацикливаться вечно.
например
Этот гипотетический пример будет ждать, пока пользователь нажмет клавишу Escape:
Do While (Flag = 0)
If UserPressedEscape() Then Flag = 1
Loop
Процессор нагревается, и охлаждающий вентилятор работает на полную мощность, потому что программа лихорадочно зацикливается, используя 100% процессорного времени.
(Я полагаю, вы ожидаете, что код обработки событий в вашей программе будет выполняться «в фоновом режиме» во время выполнения цикла, но на самом деле компьютер делает только одну вещь за раз, и поэтому он никогда не выходит из цикла для быть в состоянии запустить ваш обработчик событий. Если бы программа была «многопоточной», то это было бы возможно, но, как она написана, она «однопоточная», поэтому программа просто делает одну вещь за раз, последовательно, поэтому это никогда не выходит из цикла)