Bu konuda siz genç kancıkçılara katılmayacağım.
Geri dönüşü bir yöntemin ortasında kullanmak, geçersiz veya başka türlü, neredeyse kırk yıl önce, son derece açık bir şekilde ifade edilen nedenlerden dolayı, çok kötü bir uygulamadır, merhum Edsger W. "ve devam ediyor" Structured Programming ", Dahl, Dijkstra ve Hoare tarafından.
Temel kural, her kontrol yapısının ve her modülün tam olarak bir giriş ve bir çıkışa sahip olmasıdır. Modülün ortasındaki açık bir geri dönüş, bu kuralı bozar ve programın durumu hakkında akıl yürütmeyi çok daha zorlaştırır, bu da programın doğru olup olmadığını söylemeyi çok daha zor hale getirir (bu çok daha güçlü bir özelliktir) "işe yarıyor gibi görünüp görünmemesinden").
"GOTO İfadesi Zararlı Olarak Kabul Edildi" ve "Yapılandırılmış Programlama" 1970'lerin "Yapılandırılmış Programlama" devrimini başlattı. Bu iki parça, if-then-else, while-do ve günümüzdeki diğer açık kontrol yapılarına sahip olmamızın ve neden yüksek seviyeli dillerdeki GOTO ifadelerinin Tehlike Altındaki Türler listesinde yer almasının nedenleridir. (Benim kişisel görüşüm, Soyu Tükenmiş Türler listesinde olmaları gerektiği yönünde.)
Şunu da belirtmek gerekir ki, ilk denemede HİÇ sapma, feragat veya "evet, ama" laf kalabalığı olmaksızın kabul testini geçen ilk askeri yazılım parçası olan Mesaj Akış Modülatörünün bile olmayan bir dilde yazıldığını belirtmek gerekir. GOTO beyanı.
Ayrıca Nicklaus Wirth'in Oberon programlama dilinin en son sürümü olan Oberon-07'deki RETURN ifadesinin anlamını değiştirdiğini ve onu bir daktilo edilmiş prosedürün (yani işlev) bildiriminin son parçası haline getirdiğini belirtmek gerekir. işlevin gövdesinde çalıştırılabilir ifade. Değişikliğe ilişkin açıklaması, bunu tam olarak, önceki formun Yapılandırılmış Programlamanın tek çıkış ilkesinin ihlali OLDUĞU için yaptığını söyledi .