בקרת זרימה

פקודות בקרת זרימה הן פקודות בסיסיות בשפות תכנות, המודיעות למחשב מהי הפקודה הבאה שצריך לבצע. ברירת המחדל של המחשב היא לבצע את הפקודות באופן סדרתי. פקודות בקרת זרימה מאפשרות למתכנת להתנות ביצוע של חלק מהתוכנית, לגרום לחלקים מהתוכנית להתבצע שוב ושוב, ולדלג על קטעי קוד.

פקודת GOTO

הפקודה הבסיסית ביותר בבקרת זרימה היא פקודת GOTO ("לך אל", או Branch שפירושה "הסתעף") המורה למחשב: "עבור לפקודה הבאה הנמצאת במיקום זה וזה". למעשה, כמעט כל פקודות בקרת הזרימה, למעט פסיקות תוכנה, קריאה לשגרה וחזרה ממנה, ממומשות בשפת מכונה באמצעות פקודת הסתעפות מותנית או בלתי מותנית.

בשפות התכנות הראשונות, כגון COBOL ו־FORTRAN, נעשה שימוש נרחב בפקודת GOTO, תוך ביצוע קפיצות מכל מקום לכל מקום, לפי שיקולי המתכנת. בדרך זו ניתן לחסוך שכפול קוד, ולהגיע לביצועים אופטימליים מבחינת סיבוכיות זמן ומקום. עם זאת, שימוש חסר עכבות ב-GOTO יוצר תוכנית חסרת מבנה ברור, מה שנקרא קוד ספגטי (בשל הקושי לעקוב אחר מסלול הבקרה), שכמעט בלתי אפשרי לתחזק או להרחיב אותו, ומקשה על כתיבת קוד נטול באגים.

בשנת 1968 פרסם אדסחר דייקסטרה מאמר ובו שלל את השימוש בפקודת GOTO. לטענת דייקסטרה ורבים אחרים, ניתן לכתוב כל תוכנית מחשב ללא שימוש בפקודת GOTO מפורשת בשפה עילית. בעקבות מכתב זה התפתח התכנות המובנה, המאפשר כתיבת תוכניות נטולות GOTO.

מבני בקרת זרימה

מבני הבקרה החלופיים בשפות עיליות, המאפשרים כתיבת תוכניות נטולות GOTO, הם:

  • פקודת IFפקודת תנאי: "אם מתקיים תנאי A, בצע סדרת פקודות X, אחרת בצע סדרת פקודות Y."
  • לולאות
    • DO WHILE: "כל עוד מתקיים תנאי A, בצע סדרת פקודות X." או REPEAT UNTIL: "בצע סדרת פקודות X עד שמתקיים תנאי A." כאשר X תתבצע לפחות פעם אחת. מקרה פרטי של מבנים אלה הוא מבנה לולאת for בשפות ממשפחת C: "אתחל משתנה איטרציה i, כל עוד מתקיים תנאי A בצע סדרת הפקודות X, ולאחריה בצע פעולת עדכון למשתנה i." תנאי A בדרך כלל קשור למשתנה i – למשל התנאי i < 10.
    • For Each: "לכל אחד מאיברי המשתנה הסדרתי L, בצע אוסף פעולות X". לולאה זו מאפשרת, למשל לעבור על רשימה ללא התעסקות במבנה הפנימי שלה. לולאת for שהוזכרה קודם משמשת במקרים רבים לדמות לולאת for each.
    • שבירת לולאה – פקודת break משמשת לסיום לולאה בכל נקודה בתוכה, והמשך מסוף הלולאה, או מסימנייה מוגדרת לאחריה. פקודה זו היא בעלת סמנטיקה שעשויה להזכיר את GOTO, אך הקפיצה מתבצעת תמיד קדימה, להמשך הקוד, ולא אחורה. כך נמנעת יצירת "קוד ספגטי". פקודת continue קופצת אל האיטרציה הבאה של הלולאה – או למעשה אל התנאי שלפניה, ואם הוא עדיין מתקיים הלולאה תמשיך להתבצע.
  • CASE: "בדוק התאמה של המשתנה X לאחת מהתבניות t1, t2, ...tn, ובצע את סדרת הפעולות המתאימה לתבנית זו".
  • קריאה לשגרה או לפונקציה, ופקודת חזרה משגרה או פונקציה (return או yield). למעשה, ניתן לדמות כל לולאה בעזרת קריאות רקורסיביות לפונקציה. טכניקה זו משמשת בתכנות פונקציונלי.
  • זריקת חריגות. שיטה המאפשרת קפיצה אל נקודה מוגדרת מראש כאשר מגלים שהקוד הנוכחי איננו יכול להמשיך בפעולה המוגדרת שלו. מבנה זה בעל מאפיינים שונים מאוד משאר מבני הבקרה, בין היתר בשל העובדה שיעד הקפיצה מוגדר על פי היררכיית הקריאות לפונקציה, כלומר באופן דינמי ולא סטטי.

על אף שהשימוש בGOTO לא מומלץ, איסור מוחלט על שימוש כזה נחשב על פי רוב למוגזם, למעט בשפות שאינן נותנות כלל את האפשרות הזאת, כגון שפת ג'אווה.

קישורים חיצוניים

ויקישיתוף מדיה וקבצים בנושא בקרת זרימה בוויקישיתוף

Read other articles:

Bura di Kuala Parek, Aceh Timur, Aceh. Bura Kuron di barat Lituania dan Rusia (Kaliningrad) memisahkan lagunanya dan Laut Baltik. Bura (bahasa Inggris: spit, barrier spit) adalah jenis bentuk lahan asal proses marin yang umumnya berbentuk tipis memanjang dari suatu daratan utama ke arah suatu perairan. Serupa dengan gisik penghalang lainnya, bura utamanya terbentuk akibat deposisi oleh ingsutan arus susur pantai yang ada di tubuh air tempat bura tersebut berada. Panjang dan bentuk bura dapat ...

 

Ricky Kambuaya Informasi pribadiNama lengkap Ricky Richardo KambuayaTanggal lahir 5 Mei 1996 (umur 27)Tempat lahir Sorong, Papua Barat, Indonesia[1][2]Tinggi 172 cm (5 ft 7+1⁄2 in)Posisi bermain GelandangInformasi klubKlub saat ini Dewa United FCNomor 19Karier junior2015 Pro Duta FCKarier senior*Tahun Tim Tampil (Gol)2017–2018 PS Mojokerto Putra 45 (16)2018–2019 PSS Sleman 14 (0)2020–2022 Persebaya Surabaya 20 (6)2022–2023 Persib Bandung 22 (...

 

Russian-American white émigré and fascist activist Anastasy Andreivitch VonsiatskyPersonal detailsBorn(1898-06-12)June 12, 1898Warsaw, Russian EmpireDiedFebruary 5, 1965(1965-02-05) (aged 66)St. Petersburg, Florida, United StatesPolitical partyAll-Russian Fascist OrganisationSpouses Lyuba Murmosky ​ ​(m. 1920; annul. 1922)​ Marion Buckingham Ream ​ ​(m. 1922; sep. 1952)​ Edith Royster Childr...

Revlon (NYSE: REV) adalah perusahaan kosmetik AS, didirikan pada 1932 oleh Charles Revson dan Joseph Revson bersama seorang ahli kimia Charles Lachman. Mulanya mereka hanya memiliki satu produk, enamel kuku. Dalam waktu 6 tahun perusahaan ini berkembang menjadi usaha dengan aset jutaan dollar. Pada 1940, Revlon memperluas rangkaian produknya dengan lipstik. Pada 1952 Revlon meluncurkan parfum bernama Fire and Ice, yang diiklankan di radio oleh Bob Hope dan Red Skelton. Pada 1955, Revlon mensp...

 

لارتشمونت     الإحداثيات 40°55′33″N 73°45′10″W / 40.92583°N 73.75278°W / 40.92583; -73.75278  [1] تاريخ التأسيس 1614  تقسيم إداري  البلد الولايات المتحدة[2][3]  التقسيم الأعلى مامارونيك  خصائص جغرافية  المساحة 2.795228 كيلومتر مربع2.795225 كيلومتر مربع (1 أبريل 2010)...

 

Poster pada masa Perang Dunia II di Amerika Serikat yang menganjurkan masyarakat untuk melaporkan tindakan sabotase Sabotase adalah tindakan perusakan yang dilakukan secara terencana, disengaja dan tersembunyi terhadap peralatan, personel dan aktivitas dari bidang sasaran yang ingin dihancurkan yang berada di tengah-tengah masyarakat, kehancuran harus menimbulkan efek psikologis yang besar. kata sabot berasal dari Bahasa Prancis sabot yang artinya berjalan secara berisik, yang ditimbulkan ole...

Об экономическом термине см. Первородный грех (экономика). ХристианствоБиблия Ветхий Завет Новый Завет Евангелие Десять заповедей Нагорная проповедь Апокрифы Бог, Троица Бог Отец Иисус Христос Святой Дух История христианства Апостолы Хронология христианства Ран...

 

Historic house in Virginia, United States United States historic placeAnderson HouseU.S. National Register of Historic PlacesVirginia Landmarks Register Front of the houseShow map of VirginiaShow map of the United StatesLocation5640 Lee Ln., Haymakertown, VirginiaCoordinates37°28′37″N 79°58′02″W / 37.47694°N 79.96722°W / 37.47694; -79.96722Area47 acres (19 ha)Built1828 (1828)Architectural styleFederalNRHP reference No.98000696[1...

 

Municipality and city in Boyacá, ColombiaSogamoso, ColombiaMunicipality and cityAerial view of Sogamoso in the Iraca Valley FlagSealNickname: City of the SunLocation of the city and municipality of Sogamoso in the Boyaca DepartmentSogamoso, ColombiaLocation in ColombiaCoordinates: 5°43′0″N 72°55′15″W / 5.71667°N 72.92083°W / 5.71667; -72.92083Country ColombiaDepartmentBoyacáProvinceSugamuxi ProvinceFounded6 September 1810Government • ...

Pour les articles homonymes, voir Chu. Xu ChuBiographieNaissance Chine (en)Prénom social 仲康Activité Garde du corpsmodifier - modifier le code - modifier Wikidata Xu Chu (169/170 - 229/230) était un garde du corps du seigneur de guerre et Premier ministre de Cao Cao lors de la fin de la dynastie Han en Chine antique. Il servit aussi sous les Empereurs Cao Pi et Cao Rui du royaume de Wei lors de la période des Trois Royaumes. Véritable géant, qui d'après la légende, était aussi la...

 

For the song by the Village People, see Live and Sleazy. 2010 promotional single by KeshaSleazyPromotional single by Keshafrom the EP Cannibal A-sideWe R Who We RReleasedOctober 29, 2010 (2010-10-29)GenreDance-pop[1] hip hop[2] Length3:25LabelRCASongwriter(s) Kesha Sebert Lukasz Gottwald Benjamin Levin Shondrae Crawford Klas Åhlund Producer(s) Bangladesh Dr. Luke Benny Blanco Alternative coverSecond Remix version artwork Sleazy is a song by American recording ...

 

Association football tournament in Uruguay 1930 FIFA World Cup1er Campeonato Mundial de Fútbol (Spanish)Official poster, designed by Guillermo LabordeTournament detailsHost countryUruguayDates13–30 JulyTeams13 (from 3 confederations)Venue(s)3 (in 1 host city)Final positionsChampions Uruguay (1st title)Runners-up ArgentinaThird place United States[nb 1]Fourth place Yugoslavia[nb 1]Tournament statisticsMatches played18Goals scored70...

Archaeological site in Belgium Neolithic Flint Mines at Spiennes (Mons)UNESCO World Heritage SiteSection of mines at SpiennesLocationSpiennes, Mons, Hainaut, Wallonia, BelgiumCriteriaCultural: (i), (iii), (iv)Reference1006Inscription2000 (24th Session)Area172 ha (430 acres)Websitewww.minesdespiennes.orgCoordinates50°25′11″N 3°58′55″E / 50.41983°N 3.98183°E / 50.41983; 3.98183Location of Neolithic flint mines of Spiennes in Belgium The Neolithic fl...

 

2nd and 3rd episodes of the 9th season of The Magical World of Disney Escapade in FlorenceThe Magical World of Disney episodesEpisode nos.Season 9Episodes 2-3Directed bySteve PrevinWritten by Maurice Tombragel Bob Wehling Based onThe Golden Doorsby Edward FentonProduced byBill AndersonFeatured musicBuddy BakerCinematography byKurt GrigoleitOriginal air date1962 (1962)Running time81 minutes Escapade in Florence is a two-part episode of the The Magical World of Disney television show...

 

この項目には、一部のコンピュータや閲覧ソフトで表示できない文字が含まれています(詳細)。 数字の大字(だいじ)は、漢数字の一種。通常用いる単純な字形の漢数字(小字)の代わりに同じ音の別の漢字を用いるものである。 概要 壱万円日本銀行券(「壱」が大字) 弐千円日本銀行券(「弐」が大字) 漢数字には「一」「二」「三」と続く小字と、「壱」「...

Pour les articles homonymes, voir Argelès. Argelès-sur-Mer Blason Logo Administration Pays France Région Occitanie Département Pyrénées-Orientales Arrondissement Céret Intercommunalité Communauté de communes des Albères, de la Côte Vermeille et de l'Illibéris(siège) Maire Mandat Antoine Parra 2020-2026 Code postal 66700 Code commune 66008 Démographie Gentilé Argelésiens Populationmunicipale 10 792 hab. (2021 ) Densité 184 hab./km2 Géographie Coordonnées 42°...

 

American TV series or program The Superman/Aquaman Hour of AdventureGenreSuperheroBased on Supermanby Jerry Siegel    Joe Shuster Aquamanby Paul Norris    Mort Weisinger Directed byHal SutherlandVoices ofBud CollyerMarvin MillerTed KnightCountry of originUnited StatesNo. of episodes36ProductionExecutive producerAllen DucovnyProducersNorm PrescottLou ScheimerRunning time60 minutesProduction companiesFilmationDucovny ProductionsNational Periodical Public...

 

19°7′35″N 41°4′44″E / 19.12639°N 41.07889°E / 19.12639; 41.07889   هذه المقالة عن محافظة القنفذة. لمدينة القنفذة، طالع القنفذة. محافظة القنفذة القنفذة محافظة علم محافظة القنفذةعلمOfficial seal of محافظة القنفذةشعار الاسم الرسمي محافظة القنافذ  صورة لخريطة محافظة القنفذة نسبةً لم...

Free market think tank Indiana Policy Review FoundationEstablished1989FounderCharles S. Quilhot and Byron S. LammTypeNonprofit 501(c)(3)FocusExpanding free-market principles in IndianaLocationFort Wayne, Indiana, U.S.Area served IndianaExecutive DirectorT. Craig LadwigRevenue (2016) $95,865[1]Expenses (2016)$89,189[1]Websitewww.inpolicy.org The Indiana Policy Review Foundation (IPR) is an Indiana fusion conservative and libertarian, free market think tank. According to its web...

 

Skydiving from near space Kittinger leaps from his gondola at 31.3 km (102,800 feet). Similar to skydiving, space diving is the act of jumping from an aircraft or spacecraft in near space and falling towards Earth. The Kármán line is a common definition as to where space begins, 100 km (62 mi) above sea level. This definition is accepted by the Fédération Aéronautique Internationale (FAI), which is an international standard setting and record-keeping body for aeronautics and as...