Why is the result of this code going to be 30? I am a beginner in Swift, but I have a notion of Programming Logic.
Simple as that.
i = 0
if served rule
velocidade += i(0) * 2 OU (velocidade = velocidade(0) + 0) // Velocidade aqui é 0
again
i = 1
if served rule
velocidade += i(1) * 2 OU (velocidade = velocidade(0) + 2) // Velocidade aqui é 2
again
i = 2
if served rule
velocidade += i(2) * 2 OU velocidade = velocidade(2) + 4 // Velocidade aqui é 6
again
i == 3
Eligible else rule
velocidade += ++velocidade // Aqui é onde deve estar a sua dúvida a funçao ++ A esquerda primeiro incrementa um valor depois retorna ele.
// Ou seja se velocidade aqui era 6 usando ++ você incrementa o valor dessa variavel para 7 e depois realiza a soma dos dois valores, armazendando ele na mesma variavel.
// Logo velocidade aqui é 14.
Let's go again!
i == 4
Else Rule Served
velocidade += ++velocidade
// Usando ++ a equerda velocidade passa a valer 15
// Depois Você realiza a soma velocidade(15) += velocidade(15)
// Fim do For resultado final 30
In other words, it's 30 because you really should have 30 :), you may not have understood how functions work.
postfix public func ++(inout x: Int) -> Int
prefix public func ++(inout x: Int) -> Int
// ++variavel(10) soma 1 a variavel e depois retorna seu novo valor nesse caso 11
// variavel(10)++ retorna o seu valor nesse caso 10 depois soma 1
I hope I have helped.
In XCode, you can use a Swift sandbox named Playground . Here you can enter almost any code in Swift and see details about its execution easily and quickly. I often use it a lot to test code that does not involve the Graphical Interface part
To open the Playground :