PS PowerShell  ·  20 вопросов  ·  ~55 мин  ·  ⏱ Таймер 55:00  ·  Лёгкий  · 

Условия и циклы

Условия и циклы: практический тест по PowerShell с чтением кода, поиском причины ошибки и выбором надёжного решения. Темы: if и switch, Цикл foreach, Цикл while, Управление выполнением. Базовая линия — PowerShell 7.6.3; Windows-зависимые команды и отличия Windows PowerShell 5.1 отмечены в условиях.

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 20 вопросов отведено 55 минут. В каждом вопросе верен только один вариант; близкие ответы различаются механизмом, порядком выполнения, областью действия или эксплуатационной границей. После завершения вы увидите общий результат, результаты по 4 тематическим шкалам и подробные объяснения.
Вопрос 1 из 20
Условие if получает непустую строку "False". Какой вывод можно подтвердить?
PowerShellУсловие if получает непустую строку "False"
$result = & { if ("False") { "yes" } else { "no" } }
$shape = if($null -eq $result){'<null>'}elseif($result -is [array]){'array'}else{$result.GetType().Name}
[pscustomobject]@{ Shape=$shape; Values=@($result) }
Вопрос 2 из 20
switch обрабатывает массив из трёх значений. Какое условие нужно проверить отдельно?
PowerShellswitch обрабатывает массив из трёх значений
$result = & { switch (1,2,3) { {$_ -gt 1} { "gt:$($_)" }; 2 { "two" } } }
$resultType = if($null -eq $result){'<null>'}else{$result.GetType().FullName}
[pscustomobject]@{ Result=$result; Type=$resultType; Count=@($result).Count }
Вопрос 3 из 20
В switch используется -Regex и автоматическая переменная $Matches. Какой вывод можно подтвердить?
PowerShellВ switch используется -Regex и автоматическая переменная $Matches
$result = & { switch -Regex ("id=42") { "id=(\d+)" { $Matches[1] } } }
$items = @($result)
[pscustomobject]@{ Count=$items.Count; First=$items | Select-Object -First 1; IsNull=($null -eq $result) }
Вопрос 4 из 20
Несколько взаимоисключающих условий записаны отдельными if. Как следует читать этот фрагмент?
Вопрос 5 из 20
Ветвь условия должна вернуть объект, а не текстовое сообщение для экрана. Какое утверждение верно для этого случая?
Вопрос 6 из 20
В цикле foreach изменяется свойство объектов массива. Как следует читать этот фрагмент?
PowerShellВ цикле foreach изменяется свойство объектов массива
$items = [pscustomobject]@{N=1},[pscustomobject]@{N=2}
foreach($i in $items){$i.N++}
$items.N -join ","
Вопрос 7 из 20
Цикл foreach добавляет элементы в обычный массив оператором +=. Что окажется в выходном потоке?
PowerShellЦикл foreach добавляет элементы в обычный массив оператором +=
$out=@()
foreach($n in 1..1000){$out += $n*$n}
$out.Count
Вопрос 8 из 20
Используется continue внутри вложенного switch, расположенного в foreach. Какое объяснение не зависит от случайностей окружения?
PowerShellИспользуется continue внутри вложенного switch, расположенного в foreach
:outer foreach ($n in 1..3) {
    switch ($n) {
        2 { continue outer }
    }
    "n=$n"
}
Вопрос 9 из 20
Коллекция может быть $null. Что точнее всего описывает поведение?
Вопрос 10 из 20
Цикл должен обрабатывать поток по мере поступления. Какое объяснение точнее?
Вопрос 11 из 20
Условие while использует постинкремент. На каком правиле основан результат?
PowerShellУсловие while использует постинкремент
$i=0
while($i++ -lt 2){$i}
"end=$i"
Вопрос 12 из 20
Цикл ожидания службы не содержит паузы. Какой подход выдержит повторный запуск?
PowerShellЦикл ожидания службы не содержит паузы
$deadline=(Get-Date).AddSeconds(30)
while((Get-Service Spooler).Status -ne "Running" -and (Get-Date) -lt $deadline){ Start-Sleep 1 }
Вопрос 13 из 20
do/while применяется, когда тело должно выполниться хотя бы один раз. Что остаётся непроверенным после успешного запуска?
Вопрос 14 из 20
Условие может никогда не стать ложным из-за ошибки внешней системы. Какое ограничение здесь нельзя упустить?
Вопрос 15 из 20
Внутри while используется break после успешного результата. Как PowerShell обработает этот случай?
Вопрос 16 из 20
return находится внутри ForEach-Object в теле функции. На каком правиле основан результат?
PowerShellreturn находится внутри ForEach-Object в теле функции
function Test-R { 1..3 | ForEach-Object { if($_ -eq 2){ return }; "x$_" }; "done" }
Test-R
Вопрос 17 из 20
throw вызывается внутри функции без перехвата. Как изменится состояние после выполнения?
PowerShellthrow вызывается внутри функции без перехвата
function Invoke-Task { throw "failed"; "unreachable" }
try { Invoke-Task } catch { "caught" }
Вопрос 18 из 20
exit используется в функции библиотечного модуля. Какой подход выдержит повторный запуск?
Вопрос 19 из 20
continue находится вне цикла. Почему локальный успех ещё ничего не доказывает?
Вопрос 20 из 20
trap и try/catch применены одновременно без ясного порядка. Какое объяснение точнее?

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

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

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

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