Funcionamento do código?

Estava vendo umas perguntas de JAVA e achei esta que não entendi…
Tem a afirmação que é VERDADEIRA e o código… como é o funcionamento deste código que no final s = 10?
>>>

  • O valor final de “s” após a execução do fragmento de programa mostrado a seguir será igual a 10.

int s= 0; try { for (int m= 0; m <10; m++) { if (m= = 5) throw new Exception(); s+=m; } } catch (Exception e) { }
<<<

Valeu

Cara, é assim:

ele faz o laço até m == 4, ou seja, 5 vezes.

1 -) s = 0
m = 0
s+=m => 0

2 -) s = 0
m = 1
s+=m => 1

3 -) s = 1
m = 2
s+=m => 3

4 -) s = 3
m = 3
s+=m => 6

5 -) s = 6
m = 4
s+=m => 10

Na 6a. exec ele já dispara e exception então naum executa mais o laço.

Conseguiu entender? :wink:

BLZ…
Nossa q simples… o meu erro foi que achei que o IF comandava as duas partes:

throw new Exception(); s+=m;
Esqueci e não percebi q não tinha {} então a única intrução que o IF pega é a primeira…

Valeu
Yvan