Why is the result of this code going to be 30?

Asked

Viewed 143 times

0

Velocidade: 30

Why is the result of this code going to be 30? I’m a beginner in Swift, but I have a notion of Programming Logic.

  • 1

    Is there anything specific you want to know? Since you understand logic, you have some language features you don’t understand and want an explanation?

  • Do not put the code as an image, as this prevents someone from copying to test or even reuse. Click on [Edit] and post the code in the same text, but formatted (for more information, read: http://meta.pt.stackoverflow.com/questions/1599/formatr-c%C3%b3digo-nas-respostas-do-stack-overflow).

2 answers

0

Simple as that.

i = 0

if rule met

velocidade += i(0) * 2 OU (velocidade = velocidade(0) + 0) // Velocidade aqui é 0

again

i = 1 

if rule met

velocidade += i(1) * 2 OU (velocidade = velocidade(0) + 2) // Velocidade aqui é 2

again

i = 2

if rule met

velocidade += i(2) * 2 OU velocidade = velocidade(2) + 4 // Velocidade aqui é 6

again

i == 3

Accepted 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.

Here we go again

i == 4

Else rule met

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, he’s 30 because he really should give 30 :), maybe you didn’t understand how the 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’ve helped.

0

In the Xcode, you can use a sandbox of Swift called Playground. In it you can enter almost any code in Swift and see details about its execution easily and quickly. I use it a lot to test codes that don’t involve the Graphical Interface part

To open the Playground:

  1. Open the Xcode
  2. Click on File > New > Playground
  3. Give a name to the file
  4. Start typing in your code

Browser other questions tagged

You are not signed in. Login or sign up in order to post.