+ 1

Здравствуйте, хотел бы узнать за цикл for.

https://code.sololearn.com/cHZ3hlD66dlr/?ref=app В прикреплённом коде видно что указаны 3 аргумента, но по идее "a>0" это init и написано что он должен выполняться 1 раз, но как код продолжает работать пока переменная "а" не достигнет 0? Возможно ли то что оно воспринимает int a = 10 как за init?

8th Nov 2022, 8:58 PM
Витя
Витя - avatar
9 Antworten
+ 2
Ваша инициализация пуста. это точно так же, как для ( ; a--; a--) там a>0 не является выражением эффекта, вы не используете результат>0. так что это ни на что не влияет. когда-- ); результат условия равен нулю, например: for( ; 0 ; a--) тогда цикл останавливается. Да. начинается с а = 10; цикл без изменения значения. посмотрите, если вы возьмете нечетное значение в a then условие никогда не станет 0 , потому что для (; a--; a--) часть условия получит все нечетные числа, такие как (11, 9,7,...,3 ,1,-1, -3,.....) все имеют истинные логические эквиваленты. поэтому всегда условие true и его бесконечный цикл. Надеюсь, поможет.. Your init is empty. it is just like for( ; a--; a--) there a>0 is no effect statement, you are not using a>0 result. so its not effect anything. when ;( a-- ); condition result zero like : for( ; 0 ; a--) then loop stops. Yes. it starts from a=10; loop not changing value. see if you take a odd value in to a then condition never becomes 0 , the condition always to cause infinite loop.
8th Nov 2022, 9:30 PM
Jayakrishna 🇮🇳
+ 3
for(; a>0; a--) cout << a << endl;
8th Nov 2022, 9:22 PM
SoloProg
SoloProg - avatar
+ 3
No initializations => does nothing. edit: No condition => infinite loop note: all 3 optionals.
8th Nov 2022, 9:41 PM
Jayakrishna 🇮🇳
+ 1
In the attached code, you can see that 3 arguments are specified, but according to the idea "a> 0" is init and it is written that it should be executed 1 time, but how does the code continue to work until the variable "a" reaches 0? Is it possible that it treats int a = 10 as init?
8th Nov 2022, 9:27 PM
Витя
Витя - avatar
+ 1
And how did it determine what to do with an empty condition?
8th Nov 2022, 9:38 PM
Витя
Витя - avatar
+ 1
Ah, I think I get it.
8th Nov 2022, 9:40 PM
Витя
Витя - avatar
+ 1
creates an infinite loop
8th Nov 2022, 9:42 PM
SoloProg
SoloProg - avatar
+ 1
Okay, thanks for the detailed answer. I should have experimented more
8th Nov 2022, 9:44 PM
Витя
Витя - avatar
0
It's not exactly what I want.
8th Nov 2022, 9:26 PM
Витя
Витя - avatar