{lang: ‘ru’}

Циклы в с++В этой статье Вы узнаете, как работают циклы for(), while(), do{}while(); научитесь использовать каждый из этих циклов; сможете применять на практике операции инкремента и декремента.

 

 

 

Инкремент и декремент

В С++ есть унарная операция инкремента ++ (увеличение на 1) и унарная операция декремента (уменьшение на 1). Эти операции используются для более короткой записи увеличения переменной на единицу. Например, целочисленную переменную d можно увеличить на единицу так: d = d + 1;, либо записать d++;, что будет идентично.

Кроме того, различают постфиксную и префиксную формы записей инкремента и декремента. При префиксной форме записи переменная сначала увеличивается, а затем это уже новое значение используется в том выражении, в котором он встретилась. Префиксная форма имеет следующий вид записи: ++i, ++f, ++g, —h, —k, —l.

При постфиксной форме записи в выражении используется текущее значение переменной, а уже после переменная наращивается на единицу. Постфиксная форма имеет следующий вид записи: i++, f++, g++, h—, k—, l—.

Пример написанный ниже наглядно показывает как работает постфиксная и префиксная формы:

#include <iostream>
#include <math.h>
using namespace std;

void main()
{
	int i = 0, f =-9, g = 76;
	int h = 53, k = -90;
	double l = 9;
	cout << "i = " << i << "t" << "(i++) = " << i++ << endl;
	cout << "i = " << i << endl;
	cout << "f = " << f << "t" << "(f++) = " << f++ << endl;
	cout << "f = " << f << endl;
	cout << "g = " << g << "t" << "(g--) = " << g-- << endl;
	cout << "g = " << g << endl;
	cout << "h = " << h << "t" << "(++h) = " << ++h << endl;
	cout << "h = " << h << endl;
	cout << "k = " << k << "t" << "(--k) = " << --k << endl;
	cout << "k = " << k << endl;
	cout << "sqrt(l++) = "<< sqrt(l++) << endl;
	cout << "l = " << l << endl;
	l = l + 5;
	cout << "l = " << l << endl;
	cout << "sqrt(++l) = " << sqrt(++l) << endl;
	cout << "l = " << l << endl;
}

Различные способы присваивания

В С++ существует операции присваивания, которые позволяют сократить запись, например, запись res = res +937; будет идентична записи res += 937;, а запись k = k*5; идентична — k *= 5;. Здесь существует правило: любой оператор вида

переменная = переменная операция выражение;

где операция — одна из бинарных операций +, -, *,./, % — может быть записан в виде

переменная операция = выражение;

В таблице 5.1 показаны арифметические операции присваивания.

Операция присваивания

Пример

Пояснение

Результат присваивания

Пусть: int a = 10, b = 23, c = 32, d = 14, e = 12;

+=

a += 8;

a = a + 8;

c = 18

-=

b -= 16;

b = b – 16;

b = 7

*=

c *=5;

c = c * 5;

c = 160

/=

d /= 7;

d = d / 7;

d = 2

%=

e %= 9;

e = e % 9;

g = 3

Таблица 5.1: Некоторые арифметические операции присваивания.

Циклы

Цикл — это многократное выполнение одних и тех же действий. Например, в цикле необходимо вывести числа от 1 до 10. Или вывести на экран N раз одно и тоже слово. Или выполнять какое-либо арифметическое действие, пока не будут достигнуты определенные результаты, которые и будут являться критерием остановки.

Различают три разных оператора цикла, рассмотрим пример использования каждого оператора, решающих одну и ту же задачу — рассчитать xN, и на каждой итерации (на каждом шаге) выводить чему равен результат:

Пусть дано:
int x = 0, int N = 0,int res=1;cout<<”Enter x: ”; cin>>x;cout<<”Enter N”; cin>>N;
цикл с предусловием:
while (выражение-условие)
тело_цикла
пример: int k=1;while(k<=N){res = res*x;cout<<»result = «<<k<<» = «<<res<<»n»;k++;}
цикл с постусловием:
do
тело цикла
while (выражение-условие)
пример: int k=1;do{res = res*x;cout<<»result = «<<k<<» = «<<res<<»n»;k++;}while(k<=N);
итерационный цикл:
for( инициализация_цикла;
выражение-условие;
список выражений)
тело_цикла
пример: for(int i = 0;i < N; i++){res = res*x;cout<<»result = «<<k<<» = «<<res<<»n»;}

 


Получайте новые статьи блога прямо себе на почту