ну, это может сбить с толку стартера, но позвольте мне объяснить это более понятным способом, чем просто фрагмент
Позвольте мне разделить мое решение на 3 части как 1) инициализация 2) условие 3) приращение как 3 части цикла for
1st part
i=0,i++,i<=5
i is assigned 0
i++ increments to 1
i<=5 \\ this code has no effect as it is used in assinging part of for loop
it should be used only in condtions. so value of i is 1
i<=5 \\ doesnt make any sense it keeps i value as it is
2nd part
i++,i<=2
i++ \\ i value is 2
i<=2 \\ these code has effect as it is in conditional part of for loop
so now it checks the condition i<=2 and i value is 2 So condition becomes true
and enters into loop and prints the i value as 2
3rd part
i=0,i<=5;i+=3
i=0 assigns i = 0
i<=5 \\ as i told you, code has no effect so i still holding zero value in it
i+=3 implies i=i+3 (right hand operators)
as i value is zero it becomes i = 0+3 now i value is 3
goes to the condition part again
i++ \\ now i has four in it
i<=2 \\ fails as i value is 4 so loop exits
Помните и читайте больше об операторах запятой и правой руке.
x=4
x=(x+2,++x,x-4,++x,x+5)
x value is 11 now guess it why?
сначала выполняет x + 2, получает 6, но игнорирует, потому что вы не упомянули переменную для хранения значения, ++ x делает ее 5, поскольку это инкремент, или вам не нужно присваивать, даже если значение x-4 игнорируется и ++ x делает x равным 6, а x + 5 дает 11 по окончании, значение сохраняется в x
Я думаю, я дал вам понять и очистить Спасибо
больше сомнений не стесняйтесь спрашивать меня!