изявление за връщане

Операторът return прекратява функцията, в която се появява, и връща контрола на извикващата функция. Контролът се прехвърля към функцията за повикване в точката непосредствено след повикването. Стойността на израз, ако има такава, се връща на извикващата функция. Ако изразът е пропуснат, върнатата стойност на функцията е недефинирана.

void draw(int,int);

Основната функция извиква две функции, sq и draw. Функцията sq връща стойността x*x в main. Връщаната стойност се присвоява на променливата y. Функцията draw е декларирана като void функция и не връща стойност. Опитът за присвояване на върнатата стойност на функцията за изтегляне би довел до грешка.

Изразът за оператор за връщане е ограден в скоби, както е показано в примера. Езикът не изисква скоби.

Изявление за без връщане

Ако изразът за връщане не се появи в дефиницията на функцията, тогава контролът автоматично се прехвърля към извикващата функция, след като се изпълни последният оператор в извиканата функция. Върнатата стойност на извиканата функция не е дефинирана. Ако не се изисква връщана стойност, тогава функцията трябва да бъде декларирана с тип връщане void.

изявление за превключване

Операторът switch прехвърля контрола на един от операторите в тялото си. Операторът, който получава управление, е операторът, чийто case константен израз е равен на стойността на switch израза в скоби.

Изпълнението на тялото на оператора започва с избрания оператор и продължава до края на тялото или докато следващият оператор прехвърли контрола извън тялото.

Инструкцията по подразбиране ще бъде изпълнена, ако изразът на case константата не е равен на стойността на израза switch. Ако операторът по подразбиране е пропуснат и съответният случай не е намерен, тогава няма изпълним оператор в тялото на превключвателя. превключвател-изразът е цяло число с размер int или по-кратък. Може да бъде и enum стойност. Ако е по-кратък от int, той се разширява до int.

Всеки case постоянен израз се преобразува в типа на израз за превключване. Стойността на всеки израз на регистр-константа трябва да бъде уникален в тялото на оператора.

Етикетите case и default в тялото на оператор switch са приложими само при първоначалната проверка, когато се определя началната точка за изпълнение на тялото на оператора. Всички оператори, появяващи се между началния оператор и края на тялото, се изпълняват независимо от техните етикети, освен ако някой от операторите не прехвърли контрола от тялото на switch оператора.

В първия пример и трите оператора в тялото на превключвателя се изпълняват, ако c е равно на 'A'. Контролът се прехвърля към първия оператор capa++, след което операторите се изпълняват в реда, в който се появяват в тялото.

Ако c е равно на 'a', тогава променливите lettera и total се увеличават. И накрая, ако c не е нито „A“, нито „a“, тогава се увеличава само общата променлива.

Във втория пример, в тялото на switch, всеки оператор е последван от оператора break. Операторът break принуждава излизане от превключвателя, след като един от тези оператори е бил изпълнен. Последният оператор за прекъсване не е задължителен, защото без него контролът ще се прехвърли от тялото към края на съставния оператор, но е включен за последователност.

Изявление за тяло на превключвател може да бъде етикетирано с множество етикети, както е показано в следния пример:

case 'f': hexcvt(c);

Въпреки че всеки оператор в тялото на оператор switch може да бъде етикетиран, не е необходим оператор, за да се появи етикетът. Немаркираните твърдения могат да се смесват с етикетирани твърдения. Трябва да се помни обаче, че ако командата switch е преминалаконтрол към един от операторите на неговото тяло, тогава всички оператори, следващи го в блока, се изпълняват, независимо от техните етикети.