break/continue; goto (избегайте); область действия; исключения и проверки условий
Правильно используйте break и continue, разберитесь, почему goto не рекомендуется, безопасно применяйте правила областей действия и выбирайте между исключениями и проверками условий.
«break/continue; goto (избегайте); область действия; исключения и проверки условий» — бесплатный урок C# Academy на CoddyKit. Это урок 2 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C# Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C# Academy содержит 3 уроков всего.
Обзор урока
Цель: управлять ходом цикла с помощью break и continue, избегать goto, учитывать область видимости переменных и выбирать между исключениями и защитными проверками.
break в действии
break немедленно завершает цикл.
using System;
public class Program
{
public static void Main(string[] args)
{
for (int i = 1; i <= 10; i = i + 1)
{
if (i == 4)
{
Console.WriteLine("Stop at 4");
break; // exit loop completely
}
Console.WriteLine("i = " + i);
}
}
}
continue в действии
continue пропускает текущую итерацию и переходит к следующей.
using System;
public class Program
{
public static void Main(string[] args)
{
for (int i = 1; i <= 5; i = i + 1)
{
if (i % 2 == 0)
{
continue; // skip even numbers
}
Console.WriteLine("Odd: " + i);
}
}
}
Как избегать goto
goto создаёт запутанный поток выполнения; вместо него используйте структурированные циклы (while/for/foreach).
using System;
public class Program
{
public static void Main(string[] args)
{
// Goto works but harms readability; prefer structured loops.
int i = 0;
start:
i = i + 1;
Console.WriteLine("i = " + i);
if (i < 3)
{
goto start; // avoid using goto in real code
}
// Prefer: while loop (clear intent)
int j = 0;
while (j < 3)
{
j = j + 1;
Console.WriteLine("j = " + j);
}
}
}
Основы области видимости
Область видимости определяется фигурными скобками { }. Объявляйте переменные рядом с местом использования и не переиспользуйте имена во вложенных блоках.
using System;
public class Program
{
public static void Main(string[] args)
{
int x = 10; // outer scope
if (x > 0)
{
int y = 5; // inner scope
Console.WriteLine("x + y = " + (x + y));
}
// y is not visible here; this would not compile:
// Console.WriteLine(y);
// Shadowing (avoid reusing names in nested scopes)
int value = 1;
{
int valueInner = 2; // use a new name instead of shadowing
Console.WriteLine("value=" + value + ", inner=" + valueInner);
}
}
}
Основы диагностики
Используйте защитные проверки для ожидаемого некорректного ввода, а исключения — для исключительных состояний.
using System;
public class Program
{
// Guard check: return a bool and an out parameter (no exception on normal invalid input).
public static bool TryDivide(int x, int y, out int result)
{
if (y == 0)
{
result = 0;
return false; // guard fail
}
result = x / y;
return true;
}
// Exceptional state: throw when something truly exceptional happens.
public static int PriceWithTax(int price, int ratePercent)
{
if (price < 0)
{
throw new ArgumentOutOfRangeException("price");
}
if (ratePercent < 0 || ratePercent > 100)
{
throw new ArgumentOutOfRangeException("ratePercent");
}
return price + (price * ratePercent / 100);
}
public static void Main(string[] args)
{
int r;
bool ok = TryDivide(10, 0, out r);
Console.WriteLine("TryDivide ok=" + ok + " result=" + r);
try
{
int total = PriceWithTax(100, 18);
Console.WriteLine("Total=" + total);
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}
break и continue
Итоги
Итоги: используйте break для выхода, а continue — для пропуска итерации; избегайте goto; храните переменные в правильной области видимости; предпочитайте защитные проверки для ожидаемого некорректного ввода, а исключения — для исключительных состояний.
Часто задаваемые вопросы
Урок «break/continue; goto (избегайте); область действия; исключения и проверки условий» бесплатный?
Да — полный текст урока «break/continue; goto (избегайте); область действия; исключения и проверки условий» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C# Academy, подпишись на CoddyKit PRO. Курс C# Academy содержит 3 уроков всего.
Чему я научусь в уроке «break/continue; goto (избегайте); область действия; исключения и проверки условий»?
Правильно используйте break и continue, разберитесь, почему goto не рекомендуется, безопасно применяйте правила областей действия и выбирайте между исключениями и проверками условий. Ты практикуешь C# Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать C# Academy?
Предыдущий опыт не требуется. C# Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 3.
Сколько времени занимает урок «break/continue; goto (избегайте); область действия; исключения и проверки условий»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке C# Academy?
Да. Каждый урок C# Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- if/else, классический switch и циклы: for, while, do, foreach
- break/continue; goto (избегайте); область действия; исключения и проверки условий
- Простая диагностика: исключения и проверки условий