![]() |
Основы C++ | Раскрытие цикла while (s--) { ... };
Объясните мне, пожалуйста, как работает условие оператора while в отрывке:
Код:
int s = 12; Код:
|
Цитата:
равносильно Код:
while (s != 0) |
Вооще-то вот как
[code] loop: s--; if (s==0) goto exit; *cp = *ap + *bp; bp++; ap++; cp++; goto loop; exit: [code] |
А чтобы было ещё понятнее. К тому, что уже сказано разжую, следующие истины:
1. Любое выражение типа while(s) if(s) означает while(s!=0) if(s!=0) 2. s-- (равно как s++) означает сначала взять (присвоить, сравнить и.т.д) значение s, а потом отнять (добавить) 1. То есть Код:
int s = 1; Код:
int i = --s Соответственно, если бы в твоём примере было Код:
while(--s) ... Код:
while (s - 1 !=0 ) s = s -1 ... |
Время: 11:36. |
Время: 11:36.
© OSzone.net 2001-