Показать сообщение отдельно
Старый 04.09.2005, 22:09   #2
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
#1
#include<iostream.h>
#include<conio.h>
#include<string.h>
void main()
{
	char t[100];
f:
	cin>>t;
	if( stricmp(t,"")==0) {goto f;}


}
простейший код на С++ - вроде всё красиво и просто, далее...
(кстати, спросите тем времен у Васи - писал ли он, что-нибудь сложнее, чем пример №1)

#2
#include<iostream.h>
#include<conio.h>
#include<string.h>
void main()
{
	int a=1;
	int b=2;
	bool key=1;
	if(key==1){goto f;}
 int x=a;
 a=b;
 b=x;
	f:
 cout<<a<<" "<<b;
}
Данный пример чуть по-сложнее. Если флаг key не равен 1 - поменять значения переменных a и b местами.
И как Вы думаете: что скажет нам MSVC++?
error C2362: initialization of 'x' is skipped by 'goto f'
see declaration of 'x'
Error executing cl.exe.
1 error(s)
Т.е. временную переменную X необходимо закинуть повыше - до вызова оператора ГоТо. Теперь становится понятно, откуда у Васи Pascal`евские замашки инициализировать всё в одном месте.
Теперь представьте - такие танцы с временными переменными в большой программе...

Ещё, я обмолвился о понимании логики программы - так вот. Как описать процесс наполнения ведра водой "до краёв"?
Нормальный человек:
"Наливать, пока ведро не наполнится на 100%"
while get_p(vedro)!=100
dobavit_vodi(vedro)
wend
или
"Наливать пока не останется не занятого объёма"
while 100-get_p(vedro)>0
dobavit_vodi(vedro)
wend
ну или даже
"Наливать воду. Если ведро полное - прекратить"
while true
dobavit_vodi(vedro)
if get_p(vedro)==100 exit
wend
Логика с ГоТо:
"Налить воды. Если оно не полное то, повторить последнее действие"
Про многоступенчатые переходы, которые иначе как кошмарным сном не назовёшь, я вообще промолчу - представьте хотя бы, что каждому циклу Вы присваиваете уникальное имя. А блок-схема на готоах - это вообще абстракционизм.

Вчера ты был за goto,
сегодня - против функций
завтра - против массивов и типов
послезавтра - против мат.операций
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Сообщение было полезно следующим пользователям:
Phantom (08.04.2009)