Module: (Java) Sub-rotinas: procedimentos e funções - 1


Problem

9 /11


Variáveis ​​locais e globais

Theory Click to read/hide

Muitas vezes é necessário utilizar variáveis ​​adicionais que serão utilizadas somente na sub-rotina. Tais variáveis ​​são denominadas locais (ou locais) e só podem ser manipuladas dentro da sub-rotina em que são criadas.
 

Escopo de variável local é o bloco entre chaves dentro do qual é declarado< /em>

O programa principal em Java também é uma sub-rotina, então todas as variáveis ​​declaradas dentro de main() são variáveis ​​locais 
Outras sub-rotinas não "sabem" nada sobre as variáveis ​​locais de outras sub-rotinas.

Assim, é possível limitar o escopo (scope) de uma variável apenas à sub-rotina onde ela é realmente necessária. Na programação, essa técnica é chamada de encapsulamento  - ocultar uma variável de ser alterada de fora.

Se for necessário declarar uma variável que seria visível em qualquer lugar do programa (em qualquer sub-rotina), então tais variáveis ​​são declaradas fora de todas as sub-rotinas (ver programa 3 da tabela abaixo)
Essas variáveis ​​são chamadas globais.

Em Java, quando o programa inicia, todas as variáveis ​​globais são automaticamente zeradas (as variáveis ​​booleanas tornam-se falsas)


Analise três programas: é exibido na tela
1) Neste programa, a variável i é local. Uma variável local é declarada dentro de uma sub-rotina 2) Aqui, mesmo que exista uma variável i no programa principal (com valor 7), uma nova variável local i com valor 5 será criada. 
Ao executar este programa, a tela exibirá o valor 75
3) Este programa possui uma variável global i. Seu valor pode ser alterado dentro de uma sub-rotina, e dentro do programa principal
O procedimento funcionará com a variável global i e será atribuído a ela um novo valor igual a 2. O valor 2
teste de vazio estático () {   int i = 5; System.out.println(i); } teste de vazio estático () {   int i = 5;   System.out.println(i); } public static void main(String[] args) { { int i = 7;   System.out.println(i);   teste(); } public class Principal { int eu; teste de vazio estático () {   i = 2; } public static void main(String[] args) { { teste(); System.out.println(i); }

Problem

Escreva um procedimento com um parâmetro n que exiba uma árvore de Natal com uma coroa de altura n
O programa principal deve conter a entrada do valor da variável n e a chamada do procedimento

Exemplos
# Entrada Saída
1 5     o    ooo   ooooo  oooooo ooooooooo