рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдЧреЛрдЯреЛ


рд╕реЛрдЪ рдХрд╛ рдХрд╛рдВрдЯрд╛

GOTO рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ "рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд" рд▓реЗрдЦ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ GOTO рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд▓реЗрдЦ рдХреЗ рдЖрдзрд╛рд░ рдкрд░:

GOTO рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдкреНрд░рдгрд╛рд▓реА рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рднрд┐рдиреНрди рд╣реИрдВ - рдпрд╣ рд╣реЛрд▓рдХрд░реЛрдВ рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд╛рд░рдг рднреА рд╣реИред рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреЗрд╡рд▓ рд▓рд╛рдЧреВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЧреЛрдЯреЛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред

рдореБрдЦреНрдп рдмрд┐рдВрджреБ : рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ, рдЬреАрдУрдЯреАрдУ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЪрдХреНрдХрд░ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рд╕рд╛рдмрд┐рдд рдХрд░рддреЗ рд╣реИрдВ :
  1. рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ, рдХреЛрдб рдХрд╛ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ - рд░рдЦрд░рдЦрд╛рд╡ред
  2. рдЧреЛрдЯреЛ рдХреЗрд╡рд▓ рдХреБрдЫ рд╣реА рдкреНрд░рддрд┐рд╢рдд рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЕрд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдВрдЧрдд рдирд╣реАрдВ рдмрд┐рдЧрдбрд╝рддрд╛ рд╣реИ, рдФрд░ рдЗрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рднреА рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рд╕реЗ рднрд┐рдиреНрди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ
  3. рдХреБрдЫ рдкреНрд░рддрд┐рд╢рдд рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣рд╛рдирд┐рдХрд╛рд░рдХ рд╣реИ:
    1) рдпрд╣ рдмрд╣реБрдд рдирд┐рдореНрди-рд╕реНрддрд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рднреНрд░рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ (рдЕрдиреНрдп рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд▓реЛрднрди рд╣реИ) - рдЫреЛрдЯреЗ рдкреНрд░рддрд┐рд╢рдд рдорд╛рдорд▓реЛрдВ рдХреЗ рдХрд╛рд░рдг рдмрд╣реБрдд рдиреБрдХрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИ рдЬрдм GOTO рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ;
    2) рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рднреА рдЕрдзрд┐рдХ рд╕реБрдВрджрд░ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред



GOTO - рдЧреБрдг рдФрд░ рдХреЛрдб рдЧреБрдгрд╡рддреНрддрд╛ рдкрд░ рдкреНрд░рднрд╛рд╡


рдХреЛрдб рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд┐рдХрд▓реНрдк
(рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдб рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рд╕рднреА рдЕрд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ):
  1. рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЦрдкрдд (рдореЗрдореЛрд░реА, рдкреНрд░реЛрд╕реЗрд╕рд░ рдЪрдХреНрд░) "рдорд╢реАрди рд╕реЗ" рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИ
  2. рдХреЛрдб рдХреА рд░рдЦрд░рдЦрд╛рд╡ (рд░рдЦрд░рдЦрд╛рд╡ рдореЗрдВ рдЖрд╕рд╛рдиреА) "рд╡реНрдпрдХреНрддрд┐ рд╕реЗ" рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИ:
    1) рдХреЛрдб рдХреА рдкрдардиреАрдпрддрд╛ - рд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЛ рд╕рдордЭрдирд╛ рдХрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реИ (рддрджрдиреБрд╕рд╛рд░, рд▓рд┐рдЦрдирд╛ рдФрд░ рдбреАрдмрдЧ рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реИ),
    2) рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рджреМрд░рд╛рди рддреНрд░реБрдЯрд┐ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ - рдЧрд▓рддреА рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ / рдХреЛрдб рдмрджрд▓рддреЗ рд╕рдордп рдиреЛрдЯрд┐рд╕ рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реИ,
    3) рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдирдХ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рдиреА - рдЬрд╣рд╛рдБ рддрдХ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдирдХреЛрдВ рд╕реЗ рд╡рд┐рдЪрд▓рди рдХрд░рдирд╛ рд╕рд┐рдЦрд╛рддрд╛ рд╣реИ
GOTO рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдЧреБрдг:
  1. рдЕрд╕рдВрд░рдЪрд┐рдд : рдпрд╣ рд▓рдЧрднрдЧ рдордирдорд╛рдиреЗ рд╕реНрдерд╛рди рдкрд░ рдбрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рд╕рдордЭрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рд╣рдо рд╡рд╣рд╛рдВ рдХреИрд╕реЗ рдкрд╣реБрдВрдЪреЗ, рдЕрдиреНрдп рд╢рд╛рдЦрд╛ рдбрд┐рдЬрд╛рдЗрдиреЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд;
  2. рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдЧреБрд▓рд╛рдо рдХрд░рддрд╛ рд╣реИ : рдпрджрд┐ рд╕рдВрд░рдЪрд┐рдд рдмреНрд▓реЙрдХреЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдЙрдирдХреЗ рдХреНрд░рдо рдХреЛ рдлрд┐рд░ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░реЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдирд┐рд░реНрдорд╛рддрд╛ рдореЗрдВ рд╣реИ, рддреЛ GOTO рдирд╛рдЦреВрди рд╣реИ рдЬреЛ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рдХреБрдЫ рдмреНрд▓реЙрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ - рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рдж, рдХреЛрдб рдХреЛ рдмрджрд▓рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИред

GOTO рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЛрдб рдЧреБрдгрд╡рддреНрддрд╛ рдорд╛рдирдХреЛрдВ рдФрд░ рдЙрдирдХреЗ рдШрдЯрдХреЛрдВ рджреЛрдиреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕реА рд╕рдордп, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЬреАрдУрдЯреАрдУ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЦрдкрдд рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдирд┐рд░рдВрддрд░рддрд╛ рд╕реЗ рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдПрдореНрдмреЗрдбреЗрдб рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдХрднреА рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИред

рдЧреЛрдЯреЛ рдХреНрдпрд╛ рдирд╣реАрдВ рд╣реИ:
  1. рдЕрдиреНрдп рдирд┐рд╖реНрдкрд╛рджрди рдкреНрд░рд╡рд╛рд╣ рдирд┐рдпрдВрддреНрд░рдг рдирд┐рд░реНрдорд╛рдг - рдпрджрд┐, рд╕реНрд╡рд┐рдЪ, рдЬрдмрдХрд┐, рдЖрджрд┐ред: рдЙрдирдореЗрдВ рд╕рднреА рдкреНрд░рд╡рд╛рд╣ рд╢рд╛рдЦрд╛рдПрдВ рд╕рд┐рдВрдЯреИрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рд╣рд╛рд░реНрдб-рдХреЛрдбрд┐рдд рд╣реИрдВ, рдПрдХ рд╣реА рдмреНрд▓реЙрдХ рдХреА рд╕реАрдорд╛ рдкрд░ рд╕реНрдерд┐рдд - рдКрдкрд░реА рдпрд╛ рдирд┐рдЪрд▓реЗ (рд╡рд╛рдкрд╕реА рдХреЗ рд▓рд┐рдП - рдлрд╝рдВрдХреНрд╢рди рдмреЙрд░реНрдбрд░), рдФрд░ рдЧреЛрдЯреЛ рдХреЛ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
  2. рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдХреЛрдб - рдЙрддреНрдкрдиреНрди рдХреЛрдбрд╛рдВрддрд░рдХ рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдкрдХреЛ рдЗрд╕рдореЗрдВ рдЦреБрджрд╛рдИ рдирд╣реАрдВ рдХрд░рдиреА рд╣реЛрдЧреА рдФрд░ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

GOTO рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛рдПрдБ


рдпрд╣рд╛рдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╣реИ рдЬреЛ рдХреЛрдб рд╕реНрдЯреНрд░рдХреНрдЪрд░рд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЕрдкрд╡рд╛рдж рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╢рд╛рдорд┐рд▓ рд╣реИ: рдЬрд╛рд╡рд╛, рд╕реА #, рд╕реА ++, рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЧрдИ рднрд╛рд╖рд╛рдПрдВ рдЖрджрд┐ред - рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдПрдХ рдорд╛рдирдХ рд▓рд╛рдЧреВ рдореБрдЦреНрдпрдзрд╛рд░рд╛ред рдореИрдВ рд╕реА рдХреЛ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рднрд╛рд╖рд╛ рдирд╣реАрдВ рдорд╛рдирддрд╛, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд▓рд╛рдЧреВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ:
  1. рдмрд┐рдВрджреБ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рдЕрд▓рдЧ-рдЕрд▓рдЧ рдШрдбрд╝реА рдЪрдХреНрд░ рдпрд╛ рдореЗрдореЛрд░реА рд╕реЗрд▓, рдЗрд╕рд▓рд┐рдП рд╕рдВрд╕рд╛рдзрди рдмрдЪрдд рдХреЛ рдЧреЛрдЯреЛ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдЦрд╛рд░рд┐рдЬ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдХреЗрд╡рд▓ рд╕реНрдерд┐рд░рддрд╛ рдмрдиреА рд░рд╣рддреА рд╣реИ
  2. рдЖрдк рдХреА рддрд░рд╣ рддрд░реНрдХ рдХреЛ рд╕рдВрд░рдЪрдирд╛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ - рдЗрд╕реЗ рдлрд╝рдВрдХреНрд╢рдВрд╕ / рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рдЬреИрд╕реЗ рдХрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрдИ рдЪрд░, рд╡рд░реНрдЧ, рдЖрджрд┐ред рдХрд┐рд╕реА рднреА рдирд╛рдо рдХреЗ рд╕рд╛рде, рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдлреЗрдВрдХрдиреЗ рдХреА рдХреНрд╖рдорддрд╛
GOTO рдХреЗрд╡рд▓ рдХреЛрдб рд░рдЦрд░рдЦрд╛рд╡ рдХреЛ рдиреАрдЪрд╛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ

рд╕рд┐рд╕реНрдЯрдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ, рдЕрдзрд┐рдХрддрдо рд╕рдВрд╕рд╛рдзрди рдмрдЪрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдЗрд╕рд▓рд┐рдП, рд╢рд╛рдпрдж, рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП GOTO рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдЪрд┐рдд рд╣реИред
рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ, "рд╕рдВрд╕рд╛рдзрди рдЦрдкрдд" рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рддреНрдпрд╛рдЧ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдЕрдиреБрд░рдХреНрд╖рдг рдкреИрд░рд╛рдореАрдЯрд░ рд░рд╣рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ GOTO рдХреЛ рдиреАрдЪрд╛ рджрд┐рдЦрд╛рддрд╛ рд╣реИред


рдЧреЛрдЯреЛ - рд╕рдорд╕реНрдпрд╛рдУрдВ рдФрд░ рд╕реБрдзрд╛рд░


рдХреЛрдб рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ GOTO рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

1. рдмрд╛рд╣рд░ рд╕реЗ рдмреНрд▓реЙрдХ рдореЗрдВ рдкреНрд░рд╡реЗрд╢:

1.1 "рдирд╣реАрдВ рдЪрдХреНрд░" рдХреЗ рд▓рд┐рдП рдкреНрд░рд╡реЗрд╢:
рдЧреЛрдЯреЛ рдХреЗ рдмрд┐рдирд╛ рдЖрд╕рд╛рди рдФрд░ рд╕реНрдкрд╖реНрдЯ рдкрддреНрд░рд╛рдЪрд╛рд░:

if(a) GOTO InsideIf; if(b) { foo(); InsideIf: bar(); } 

=>

  if(b) { foo(); } if(a || b) { bar(); } 

1.2 рдЪрдХреНрд░ рдореЗрдВ рдкреНрд░рд╡реЗрд╢:
рдЕрд╕рдВрднрд╡: рдирд┐рд╖реНрдкрд╛рджрди рдкреНрд░рд╡рд╛рд╣ рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ:

  if(goIntoCycle) GOTO MiddleOfCycle; for(...) { foo(); MiddleOfCycle: bar(); } 


2. рдПрдХ рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрджрд░ рд╕рдВрдХреНрд░рдордг:
рдХреЛрдИ рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди, рдЖрдорддреМрд░ рдкрд░ рдЕрдЧрд░ / рдирд╣реАрдВ:

  if(bNotNeeded) GOTO startFromC: B(); startFromC: C(); 

=>

  if(bNeeded) { B(); } C(); 


3. рдмреНрд▓реЙрдХ рд╕реЗ рдмрд╛рд╣рд░ рдХреА рдУрд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ

рдпрд╣ рдЧреЛрдЯреЛ рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рдЙрдкрдпреЛрдЧ рдХрд╛ рдореБрдЦреНрдп рдорд╛рдорд▓рд╛ рд╣реИред рд╣рдо рдЗрд╕реЗ рдФрд░ рднреА рдЫреЛрдЯреЗ рд▓реЛрдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред
рд╕рд╛рдорд╛рдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рд╡рд┐рдШрдЯрд┐рдд рдХрд░рдирд╛ рд╣реИ: рд╣рдо рдЗрд╕реЗ рдЕрд░реНрде рдХреЗ рднреАрддрд░ рддрд░реАрдХреЛрдВ рдореЗрдВ рддреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ, рдмреЛрд▓рдиреЗ рд╡рд╛рд▓реЗ рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдЭрдВрдбреЗ рдореЗрдВ рддрд░реНрдХ рдХреЛ рдареАрдХ рдХрд░рддреЗ рд╣реИрдВ - рд╣рдореЗрдВ рдПрдХ рдкрдардиреАрдп рдФрд░ рд╕реНрд╡-рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдХреЛрдб рдорд┐рд▓рддрд╛ рд╣реИред

рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд┐рдпрдо:
  1. рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ :

    1) рд╣рдо рд╣рдореЗрд╢рд╛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдФрд░ рдЖрдкрд╛рддрдХрд╛рд▓реАрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрд╡рд╛рджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЖрдВрдЦреЛрдВ рдХреА рд░реЛрд╢рдиреА рди рд╣реЛ;

    2) рд╣рдо рдЧрд▓рддреА рд╕реЗ рдШреЛрдВрд╕рд▓реЗ рдХреЗ рдЖрдВрддрд░рд┐рдХ рд╕реНрддрд░ рд╕реЗ рдПрдХ рдЕрдкрд╡рд╛рдж "рдирд┐рдЧрд▓" рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ;

    3) рдпрд╣ рдПрдХ рдорд╣рдВрдЧреА рдЦреБрд╢реА рд╣реИ - рдЖрд╡реЗрджрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдпрд╣ рджреБрд╖реНрдЯ рдХреЗ рд▓рд┐рдП рдмреЗрдХрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд░рд▓ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ рдмрд┐рдЦрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ;
  2. рд╣рдо рдХрдИ рд░рд┐рдЯрд░реНрди рд╕реЗ рдмрдЪрддреЗ рд╣реИрдВ , рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдШреЛрдВрд╕рд▓реЗ рдХреЗ рд╢рд┐рдХрд╛рд░ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрд░реЛрдВ рд╕реЗ: рдЕрдиреНрдпрдерд╛ рдЧреЛрдЯреЛ рд╕реЗ рдХреБрдЫ рдЕрдВрддрд░ рд╣реИрдВ - рдХреЛрдб рдХреА рдкрдардиреАрдпрддрд╛ рднреА рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред (рд╢рд╛рдпрдж рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдФрдЪрд┐рддреНрдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рд╡рд╣ рднреА рдПрдХ рд╣реЛрд▓реАрд╡рд░ рд╣реИ)ред

3.1ред рдШреЛрдВрд╕рд▓реЗ рдХреЗ рдПрдХ рд╕реНрддрд░ рд╕реЗ рдмрд╛рд╣рд░ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛:
рддреБрдЪреНрдЫ рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ / рдмреНрд░реЗрдХ, рдЖрджрд┐ред

3.2ред рдШреЛрдВрд╕рд▓реЗ рдХреЗ рд╢рд┐рдХрд╛рд░ рдХреЗ рдПрдХ рд╕реНрддрд░ рд╕реЗ рдХрдИ рдирд┐рдХрд╛рд╕:

3.2.1 рддреНрд░реБрдЯрд┐ рд╣реИрдВрдбрд▓рд┐рдВрдЧ - рдХреЗрд╡рд▓ рдЕрдкрд╡рд╛рдж рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ
(рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ; рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдореИрдВ рдПрдХ рдЕрд▓рдЧ рд▓реЗрдЦ рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ)

3.2.2 рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдЧрдгрдирд╛ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐:

  class Tamagochi { function recreate() { if(wannaEat) { eat(); GOTO Cleanup; } if (wannaDrink) { drink(); GOTO Cleanup; } if(wannaDance) { Dance(); } return HAPPY; //true Cleanup: return washHands() && cleanKitchen(); } } 

рд╕рдорд╕реНрдпрд╛рдПрдВ (рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдзрд╛рдЧреЗ рдХреА рд╣рдореЗрд╢рд╛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЧреИрд░-рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЛ рдЫреЛрдбрд╝рдХрд░)
рд╡реЗ рд╡рд╛рдирд╛рдЯреЗрдЯ рдФрд░ рд╡рд╛рдирд╛рдбрд╛рдВрд╕ рдХреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдиреАрдВрдж рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ - рд╕рдм рдХреБрдЫ, рд╡рд╛рдирд╛рдПрдЯ рдФрд░ рд╡рд╛рдирд╛рдбреНрд░рд┐рдВрдХ рдХреЗ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рдХреЛ рдирд╖реНрдЯ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдХреИрд╕реЗ рд╕реБрдВрджрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП (рддреБрд░рдВрдд рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╕рдВрд╕реНрдХрд░рдг):

  function recreate() { if(wannaEat) { eat(); needCleanup = true; needSleep = true; } if (wannaDrink) { drink(); needCleanup = true; } if(wannaDance) { Dance(); needSleep = true; } result = HAPPY; //true if(needCleanup) result = result && washHands() && cleanKitchen(); if(needSleep) result = result && sleep(); return result; } 


3.3ред рдШреЛрдВрд╕рд▓реЗ рдХреЗ рд╢рд┐рдХрд╛рд░ рдХреЗ рдХрдИ рд╕реНрддрд░реЛрдВ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВред

рей.рей.рез рдпрджрд┐ рд╡рд┐рднрд┐рдиреНрди рддрд░реНрдХ (рд╡рд┐рднрд┐рдиреНрди рдЬрд┐рдореНрдореЗрджрд╛рд░рд┐рдпреЛрдВ) рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ:

  class BatchInputProcessor { function processInput(inputRecords) { for (inputRecord in inputRecords) { for (validator in validators) { if (!validator.check(inputRecord) GOTO ValidationFailed; } item = new Item(); for (fieldValue in inputRecord.fieldValues) { setFieldValue(fieldValue.field, fieldValue.value); } itemsToStore.add(item); } return store(itemsToStore); ValidationFailed: log(failedValidation); tryToCorrect(inputRecords); ... } } 

=>

  function processInput(inputRecords) { allRecordsAreValid = true; for(inputRecord in inputRecords) { recordIsValid = validateRecord(inputRecord, validators); if(!recordIsValid) { allRecordsAreValid = false; break; } else { itemToStore = createItemFromRecord(inputRecord); itemsToStore.add(item); } } if(allRecordsAreValid) { result = store(itemsToStore); } else { log(failedValidation); tryToCorrect(inputRecords); ... } } 


рей.рей.реиред рд╡рд┐рднрд┐рдиреНрди рддрд░реНрдХ рдХреЛ рднреЗрджрдирд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИ, рдпрд╛ рдХреЛрдб рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИред

рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдиреЗрд╕реНрдЯреЗрдб рдЫреЛрд░реЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:

  function findOrCreateTriadaOfEqual(firstArray, secondArray, thirdArray) { result = null; for(first in firstArray) { for(second in secondArray) { for(third in thirdArray) { if(first == second && second == third) { result = array(first, second, third); GOTO Found: } } } } equal = new Item(); result = array(equal, equal, equal); Found: log(result); return result; } 


рдЕрднреА рднреА рдХрдИ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:
  1. рдЖрдВрддрд░рд┐рдХ рд▓реВрдк рд╕реЗ рд╡рд╛рдкрд╕реА рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд▓рдЧ рд╕рдмрдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдбрд╛рд▓ рджрд┐рдпрд╛ - рд╕рдмрд╕реЗ рдЖрд╕рд╛рди
  2. рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдХрд░реЗрдВ - рдкреНрд░рдкрддреНрд░ рдХрд╛ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХрд╛рд░реНрдп рдвреВрдВрдвреЗрдВ findEqualInArrays (arrayOfArrays, currentArrayIndex, currentFoundItemsArray);
  3. "рдЕрдЧрд░ (рдкрд░рд┐рдгрд╛рдо) рдмреНрд░реЗрдХ" рд╕рдмрд╕реЗ рдЕрдирд╛рдбрд╝реА рд╣реИ:
  result = null; for(first in firstArray) { for(second in secondArray) { for(third in thirdArray) { if(first == second && second == third) { result = array(first, second, third); break; } } if(result) break; } if(result) break; } 


рдпрд╣ рдПрдХрдорд╛рддреНрд░ рд╡рд┐рдХрд▓реНрдк рд╣реИ рдЬреЛ рдЧреЛрдЯреЛ рд╕реЗ рднреА рдмрджрддрд░ рджрд┐рдЦрддрд╛ рд╣реИ, рдФрд░ рдЧреЛрдЯреЛ рднреА рд╕реНрдкрд╖реНрдЯ рд╣реИред рд▓реЗрдХрд┐рди рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рд╣реЛрддреЗ рд╣реИрдВред

рд╢реЗрд╖ рдЧрд╛рдпрдм рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЫреЛрдЯреЗ рдкреНрд░рддрд┐рд╢рдд рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЬрдм рдХреЛрдИ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдмрд╕ рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрднреА рднреА рдХрдо рд╕реЗ рдХрдо рдЭрдВрдбреЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢ рдЖрд╕рд╛рди рд╣реЛрдВрдЧреЗ - "рдмрд┐рдирд╛ рдЧреЛрдЯреЛ!"

рд╕рд╛рд░рд╛рдВрд╢:


рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рд░рдЦрд░рдЦрд╛рд╡ рд╣реИ ред

GOTO рд╣рдореЗрд╢рд╛ рд╕реНрдерд┐рд░рддрд╛ рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИ , рдЗрд╕рд▓рд┐рдП

рдЖрдкрдХреЛ GOTO рдХреЗ рдмрд┐рдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдкрд░реНрдпрд╛рдкреНрдд рдорд╛рдирдХ рдЙрдкрдХрд░рдг:
  1. рдЕрдкрд╡рд╛рджреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ;
  2. рдЕрдкрдШрдЯрди - рдПрдХ рдмрдбрд╝реА рд╡рд┐рдзрд┐ рдЬреЛ рдХрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддреА рд╣реИ, рдЫреЛрдЯреЗ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реЛрддреА рд╣реИ, рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рддреА рд╣реИ;
  3. рдмреЛрд▓рдиреЗ рд╡рд╛рд▓реЗ рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдЪрд░ рдореЗрдВ рддрд░реНрдХ (рдкрд░рд┐рдХрд▓рд┐рдд рд╕реНрдерд┐рддрд┐ рдФрд░ рднрд╛рд╡) рдХреЛ рдареАрдХ рдХрд░рдирд╛ред

Source: https://habr.com/ru/post/In114470/


All Articles