Se o IF tiver apenas 1 instrução não é necessário abrir um bloco { } nesse caso se há uma variável com o valor atribuido fora desse if consegue enchergar dentro de if se eu não tiver bloco, devido ter apenas 1 instrução?????
Se o IF tiver apenas 1 instrução não é necessário abrir um bloco { } nesse caso se há uma variável com o valor atribuido fora desse if consegue enchergar dentro de if se eu não tiver bloco, devido ter apenas 1 instrução?????
Olá Diego, tudo certo?
Se a variável é criada fora do if
, ela conseguirá ser lida, independentemente das chaves.
As chaves delimitam um escopo local, e essa variável ela pertence ao escopo global (da classe) ou ao escopo do método (foi declarada dentro do método e fora de qualquer outra estrutura) ela poderá ser usada sem problemas.
Mas se a variável fosse criada dentro de um outro if
ou dentro de um for
ou método diferente do que ela for usada, isso dará um erro, porque a variável não pertence àquele escopo.
Só complementando, uma estrutura sempre consegue usar uma variável que pertence ao próprio escopo ou de um escopo mais geral, mas nunca de um escopo específico. Se um método quiser o valor de uma varável que depende de um if (fora do seu escopo), esse valor tem que ser atribuído a uma variável que foi declarada em um escopo que esse método consegue enxergar.
Espero ter ajudado!