C# C#  ·  20 вопросов  ·  ~55 мин  ·  ⏱ Таймер 55:00  ·  Средний  · 

Условия, циклы и pattern matching

Проверяет ветвления, циклы и базовое сопоставление с образцом на небольших, но коварных фрагментах. Вопросы заставляют учитывать порядок условий, границы итераций, короткое замыкание и то, какая ветвь действительно достижима.

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 20 вопросов отведено 55 минут. В заданиях с кодом учитывайте указанную конструкцию и не додумывайте отсутствующие условия. После завершения откроются общий результат, тематические шкалы и разбор каждого ответа.
Вопрос 1 из 20
Будет ли вызван Log()?
C#
bool Log() { Console.WriteLine("log"); return true; }
bool enabled = false;
if (enabled && Log())
    Console.WriteLine("run");
Вопрос 2 из 20
Как исправить условие проверки диапазона от 10 до 20 включительно?
Вопрос 3 из 20
Какой текст будет напечатан?
C#
int x = 12;
if (x > 0) Console.WriteLine("A");
else if (x > 10) Console.WriteLine("B");
else Console.WriteLine("C");
Вопрос 4 из 20
Как лучше выразить ранний отказ при недопустимом аргументе?
Вопрос 5 из 20
Где переменную n можно читать без ошибки определённого присваивания?
C#
object value = 42;
if (value is int n && n > 0)
{
    Console.WriteLine(n);
}
// Console.WriteLine(n);
Вопрос 6 из 20
Сколько раз выполнится тело цикла?
C#
int count = 0;
for (int i = 0; i < 5; i++)
    count++;
Console.WriteLine(count);
Вопрос 7 из 20
Почему удаление элементов в foreach вызывает проблему?
C#
var items = new List<int> { 1, 2, 3, 4 };
foreach (var x in items)
    if (x % 2 == 0) items.Remove(x);
Вопрос 8 из 20
Как безопасно удалить элементы списка по условию?
Вопрос 9 из 20
Какие числа успеет вывести цикл с continue при 2 и break при 4?
C#
for (int i = 1; i <= 5; i++)
{
    if (i == 2) continue;
    if (i == 4) break;
    Console.Write(i + " ");
}
Вопрос 10 из 20
Когда do-while отличается от while принципиально?
Вопрос 11 из 20
Какое значение получит label?
C#
int n = 3;
string label = n switch
{
    0 => "zero",
    > 0 and < 10 => "small",
    > 0 => "positive",
    _ => "other"
};
Console.WriteLine(label);
Вопрос 12 из 20
Почему компилятор считает одну ветвь недостижимой?
C#
string Describe(object value) => value switch
{
    int x => $"int {x}",
    int x when x > 0 => "positive",
    _ => "other"
};
Вопрос 13 из 20
Как обеспечить явную обработку неизвестного значения enum?
Вопрос 14 из 20
Какой arm сработает для строки из трёх символов?
C#
string? s = "abc";
var kind = s switch
{
    null => "null",
    "" => "empty",
    { Length: <= 3 } => "short",
    _ => "text"
};
Console.WriteLine(kind);
Вопрос 15 из 20
Когда switch expression предпочтительнее цепочки if/else?
Вопрос 16 из 20
Какой вариант одновременно проверяет тип и получает значение без второго cast?
Вопрос 17 из 20
Какую ветвь switch expression выберет значение null?
C#
object? value = null;
string result = value switch
{
    null => "null",
    string s => s,
    _ => "other"
};
Console.WriteLine(result);
Вопрос 18 из 20
Как читается шаблон n is >= 0 and <= 100?
Вопрос 19 из 20
Почему шаблон not null лучше простой проверки != null для перегруженного оператора?
C#
if (candidate is not null)
{
    Console.WriteLine(candidate.Id);
}
Вопрос 20 из 20
Какой подход лучше для разбора object, который может быть int, string или null?

Ответьте на все 20 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу