+ 1
Здравствуйте, хотел бы узнать за цикл for.
https://code.sololearn.com/cHZ3hlD66dlr/?ref=app В прикреплённом коде видно что указаны 3 аргумента, но по идее "a>0" это init и написано что он должен выполняться 1 раз, но как код продолжает работать пока переменная "а" не достигнет 0? Возможно ли то что оно воспринимает int a = 10 как за init?
10 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.
+ 3
for(; a>0; a--) cout << a << endl;
+ 3
No initializations => does nothing.
edit:
No condition => infinite loop
note: all 3 optionals.
+ 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?
+ 1
And how did it determine what to do with an empty condition?
+ 1
Ah, I think I get it.
+ 1
creates an infinite loop
+ 1
Okay, thanks for the detailed answer. I should have experimented more
0
It's not exactly what I want.