Продолжим совершенствование нашей программы. Пусть после того, как на экран выдан результат, программа не завершает свою работу, а спрашивает пользователя, не желает ли он продолжить складывать (вычитать, делить, умножать) числа. И пусть при получении утвердительного ответа работа программы продолжается - снова запрашиваются значения двух чисел и знак арифметической операции, вычисляется результат и так далее, до тех пор, пока пользователь не откажется от дальнейшей работы с программой, введя отрицательный ответ.
Заметим, что программу, выполняющую указанные действия, можно написать по-разному. Ниже приведен один из многих возможных вариантов:
once.again:
'метку "once.again" помещаем здесь; за ней-двоеточие
INPUT " x=", x 'выводится на экран подсказка " x= " и считывается значение х
INPUT " znak=", s$ 'выводится на экран подсказка " znak= " и считывается значение s$
INPUT " y=", y 'выводится на экран подсказка " y= " и считывается значение y
IF s$ = "+" THEN z = x + y 'если s$="+", то z присваивается x+y
IF s$ = "-" THEN z = x - y
'если s$="-", то z присваивается x-y
IF s$ = "*" THEN z = x * y 'если s$="*", то z присваивается x*y
IF s$ = "/" THEN z = x / y
'если s$="/", то z присваивается x/y
PRINT x; s$; y; "="; z
'пишем на экран значения x, s$, y, символ "=" и значение z
INPUT " Continue? (y/n)", a$ 'вопрос пользователю: продолжить?(y/n), т.е. (да/нет)
IF a$ = "y" OR a$ = "Y" THEN GOTO once.again '..и если это "y" или "Y", переходим на метку "once.again"
Этот вариант программы продемонстрирован, в основном, для иллюстрации оператора
GOTO <метка>,
передающего управление на строку программы, помеченной меткой.
В нашем случае <метка> определена как "once.again", и если на вопрос программы "Continue(y/n)?';" (т.е. "продолжить(да/нет)?") пользователь ответит "y" или "Y", то управление будет передано на строку, помеченную меткой "once.again" (т.е. в начало программы, на строку
INPUT " x=", x).
Отметим, что отношение многих программистов к оператору
GOTO весьма отрицательно: доходит до того, что использование
GOTO считается дурным тоном среди профессионалов и запрещается преподавателями к применению при написании программ студентами. И среди основных доводов против называют:
1) При частом использовании операторов GOTO и многочисленных меток в программе в них легко можно запутаться.
2) В современных языках программирования (в т. ч. в Бейсике) достаточно средств организации переходов без применения
GOTO.
Однако мы не будем столь категоричны.
то же на Fortran то же на C то же на Pascal