Использование предложения goto



Предложение С++ goto реализует безусловный переход. Предложение не является необходимым в законченном языке. Скорее его можно рассматривать как некоторое дополнение, которое, если им пользоваться со смыслом, принесёт пользу в определённых программных ситуациях. В некоторых случаях использование goto не усложняет программу, а  наоборот проясняет её структуру. Общий вид предложения goto следующий:

goto метка;

Метка – это допустимый идентификатор С++, сопровождаемый двоеточием. Метка должна находиться в той же функции, что и использующее её goto.

Например, цикл от 1 до 100 можно организовать с помощью goto.

x =1;

loop1:

x++;

if( x<100) goto loop1;

Один из разумных примеров использования goto - выход из глубоко вложенного программного блока.

 

for (….) {

for (…) {

              while (…){

                             if(…) goto stop;

                             .

                             .

                             .

              }

}

}

stop:

cout << “ Ошибка в программе. \n”;

 

Устранение потребовало бы выполнения ряда дополнительных проверок. Простое предложение здесь не будет работать, потому, что оно обеспечивает лишь выход программы из самого внутреннего цикла.


Вопросы для самоконтроля

1. Составьте программу, которая вводит символы до знака $. Пусть программа считает число введённых точек и выведет подсчитанное количество на экран монитора.

2. Может ли в предложении switch возникнуть ситуация, когда после выполнения одной ветви case продолжиться выполнение следующей?

3. Напишите общую форму цепочки if – else - if

4. Рассмотрите следующий программный фрагмент. К какому if относится последнее else.

if (x<100)

if (y<100) {

            if (!done) x=z;

            else y=z

}

else cout <<”ошибка”>>;                 // какое if ?

5. Напишите предложение for для цикла, который проходит значения от 1000 до 0 с приращением -2.

6. Допустим ли следующий фрагмент?

for (int i = 0; i < num; i++)

sum += i;

count = i;

7. Объясните, как выполняется предложение break.

8. Рассмотрите программный фрагмент. Что будет выведено на экран после выполнения предложения break.

for (i = 0; i < 10; i++) {

while (running) {

            if (x<y) break

            / / ….

}

cout << “после while \n”;

}

cout << “после for \n”;

 

9. Что выведет на экран следующий программный фрагмент:

for ( int i = 0; i < 10; i++) {

cout << i << “ “;

if (!(i % 2)) continue;

cout << “\n”;

}

10. Выражение приращения цикла for не обязательно должно изменять значение переменной циклом на фиксированную величину. Напротив, переменная может изменяться произвольно. Используя это обстоятельство, составьте программу, которая с помощью цикла for вычисляет и выводит на экран геометрическую прогрессию 1, 2, 4, 8, 16, 32,…

11. Коды строчных латинских букв в таблице ASCII отличаются от прописных букв на величину 32. Таким образом, чтобы преобразовать строчные в прописные, из кода буквы следует вычесть 32. Используя это обстоятельство, напишите программу, которая вводит символы с клавиатуры и преобразует строчные в прописные, а прописные в строчные, выводя результат на экран (20 символов в строке). Не изменяйте никакие другие символы. Программа должна завершиться при вводе символа точки, а перед завершением вывести число выполненных изменений.

12. Как выглядит предложение безусловного перехода в С++?


Дата добавления: 2019-07-15; просмотров: 265; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!