Инструкции управления потоком выполнения

03.01.2020

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

Пустая инструкция

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

Блок инструкций

Если требуется сгруппировать ноль и более инструкций то следует использовать пару фигурных скобок.

{
  let message;
	message = “Hello World"; 
}

Инструкция if

if (isReady) {
  message = “Time to drink tea”;
} else {
	message = “Time to work”;
}

Если условие верно, то произойдет выполнение первой инструкции, если нет то второй. Блок else необязательный.

Инструкция switch

Инструкция сравнивает выражение со случаями, перечисленными в case. Если выражение совпадает со значением в case, то происходит выполнение блока следующего за case.

let deviceColor;
switch (channels) {
  case 1:
    deviceColor = ‘DeviceGray’;
    break;
  case 3:
    deviceColor =  ‘DeviceRGB’;
    break;
  case 4:
    deviceColor =  ‘DeviceCMYK’;	  
    break;
}

Ключевое слово break является необязательным. Если его опустить, то произойдет выполнение следующего случая и проверка не будет выполняться.

Инструкция throw

Выбрасывает пользовательское исключение. throw “Something goes wrong”; При исполнение инструкции throw произойдет остановка выполнения текущей функции, и управление будет передано в первый блок catch. Если блок catch не будет найден, то выполнение программы будет остановлено.

В качестве аргумента для throw может выступать любое значение, такое как примитив или объект.

Инструкция try…catch

Данная инструкция используется для перехвата исключений и последующей их обработки.

try {
	wrtie();
} catch (e) {
	console.log(e);
} finally {

}

Если инструкции внутри блок try выкидывают исключения, то они попадают в блок catch. В идентификаторе e хранится объект ошибки. Блок finally является необязательным. Вне зависимости была ошибка или нет, выполнение блока finally произойдет в любом случае, после завершения выполнения блока try.

Инструкция break

Прерывает текущую инструкцию цикла, ветвления или инструкцию с меткой и передаёт управление на инструкцию, следующую за прерываемой. Пример использования.

while( true ) { 
	if ( i > 10) break;
	i += 1; 
}

При выполнение инструкции break, выполнение цикла прекратится и управление будет передано следующей инструкции после цикла.

Инструкция continue

Прерывает выполнение инструкции в текущей итерации текущего цикла или цикла с меткой и продолжает выполнение цикла со следующей итерации.

while ( true ) {
	i += 1; 
	if ( i % 2 === 1)  continue;
	…
} 

Инструкция label

Представляет инструкцию с идентификатором, на который можно сослаться c помощью инструкций break или continue.

let i = 0; 
loop1: 
while (true) {
	if( i === 5 ) break loop1;
  i++; 
  console.log(i);
} 

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

В следующей статье

В следующе статье ждите циклы.

#jsbook#javascript

Еженедельная рассылка новостей

Циклы и итерирование объектов

Выражения