Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Оператор цикла while





Язык программирования MatLab имеет два оператора цикла: while и for. С их помощью, например, выполняется программирование рекуррентных алгоритмов, подсчета суммы ряда, перебора элементов массива и многое другое.

В самом простом случае цикл в программе организуется с помощью оператора while, который имеет следующий синтаксис:

while <условие>
<операторы>
end

Здесь <условие> означает условное выражение подобное тому, которое применяется в операторе if, и цикл while работает до тех пор, пока это условие истинно.

Следует обратить внимание на то, что если условие будет ложным до начала выполнения цикла, то операторы, входящие в цикл, не будут выполнены ни разу.

Приведем пример работы цикла while для подсчета суммы ряда :

function sum_i
S = 0; % начальное значение суммы
i=1; % счетчик суммы
while i <= 20 % цикл (работает пока i <= 20)
S=S+i; % подсчитывается сумма
i=i+1; % увеличивается счетчик на 1
end % конец цикла
disp(S); % отображение суммы 210 на экране

Теперь усложним задачу и будем подсчитывать сумму ряда , пока . Здесь в операторе цикла получается два условия: либо счетчик по i доходит до 20, либо значение суммы S превысит 20. Данную логику можно реализовать с помощью составного условного выражения в операторе цикла while:

function sum_i
S = 0; % начальное значение суммы
i=1; % счетчик суммы
while i <= 20 & S <= 20 % цикл (работает пока i<=10 и S<=20
S=S+i; % подсчитывается сумма
i=i+1; % увеличивается счетчик на 1
end % конец цикла
disp(S); % отображение суммы 21 на экране

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

Работу любого оператора цикла, в том числе и while, можно принудительно завершить с помощью оператора break. Например, предыдущую программу можно переписать следующим образом с использованием оператора break:

function sum_i
S = 0; % начальное значение суммы
i=1; % счетчик суммы
while i <= 20 % цикл (работает пока i<=10
S=S+i; % подсчитывается сумма
i=i+1; % увеличивается счетчик на 1
if S > 20 % если S > 20,
break; % то цикл завершается
end
end % конец цикла
disp(S); % отображение суммы 21 на экране

В данном примере второе условие завершения цикла, когда S будет больше 20, записано в самом цикле и с помощью оператора break осуществляется выход из цикла на функцию disp(), стоящую сразу после цикла while.

Второй оператор управления выполнением цикла continue позволяет пропускать выполнение фрагмента программы, стоящий после него. Например, требуется подсчитать сумму элементов массива

a = [1 2 3 4 5 6 7 8 9];

исключая элемент с индексом 5. Такую программу можно записать следующим образом:

function sum_array
S = 0; % начальное значение суммы
a = [1 2 3 4 5 6 7 8 9]; % массив
i=0; % счетчик индексов массива
while i < length(a) % цикл (работает пока i меньше
% длины массива а)
i=i+1; % увеличивается счетчик индексов на 1
if i == 5 % если индекс равен 5
continue; % то его не подсчитываем
end
S=S+a(i); % подсчитывается сумма элементов
end % конец цикла
disp(S); % отображение суммы 40 на экране

Следует отметить, что в данной программе увеличение индекса массива i происходит до проверки условия. Это сделано для того, чтобы значение индекса увеличивалось на 1 на каждой итерации работы цикла. Если увеличение счетчика i записать как в предыдущих примерах, т.е. после подсчета суммы, то из-за оператора continue его значение остановилось бы на 5 и цикл while работал бы «вечно».







Date: 2015-10-19; view: 346; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию