gamecreator Wrote:почти всегда алгоритм можно построить таким образом, что он будет иметь ровно одну точку входа и одну точку выхода.
Да, я знаю.
Но это может привести к ухудшению читаемости кода: (Click to View)
Согласись ведь, что такой код:
PHP Code:
char* name_of_digit(unsigned int* digit) // функция возвращает название цифры в десятичной системе { if (!digit) return "Error: null pointer";
switch (*digit) { case 0: return "Zero"; case 1: return "One"; case 2: return "Two"; case 3: return "Three"; case 4: return "Four"; case 5: return "Five"; case 6: return "Six"; case 7: return "Seven"; case 8: return "Eight"; case 9: return "Nine"; default: return "Error: non-digit"; } }
выглядит значительно лучше, чем если бы он составлялся без goto-подобных switch и return?
Berserker Wrote:Вирт в Оберонах вообще убрал беззнаковый тип.
Ну и зря. Например, я хочу написать свой класс - динамический массив типа наподобие std::vector, с перегруженной операцией "квадратные скобки". И при этом, я хочу иметь нумерацию его элементов именно с нуля - дабы программист не мог обратиться к "отрицательному" элементу. И как же мне сделать это в Обероне, если там нету беззнакового типа?
Welcome to the soldier side,
Where there is no one here but me.
People all grow up to die,
There is no one here but me...