Why will the result of this code result in 30?

0

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.

    
asked by anonymous 08.08.2016 / 03:49

2 answers

0

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.

    
10.08.2016 / 22:10
0

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 :

  • Open XCode
  • Click% with%
  • Give the file a name
  • Start typing your code
  • 25.08.2016 / 05:38