Classes Mystery do Livro "Java como Programar"

4 respostas
S

Pessoal,

Estou estudando Java pelo Livro “Java como Programar - 4º Edição” .

O Livro apresenta um exercicio com o seguinte codigo:

public class Mystery {


    public static void main(String[] args) {
    	
        int y,x = 1, total= 0;

        while (x <= 10){

        	y= x *x;
        	System.out.println(y);
        	total += y;
        	++x;
        }

        System.out.println("Total é : " + total);

    }
}

Preciso informar a saida dessa classe, executando essa classe recebo a segunte saida:

1
4
9
16
25
36
49
64
81
100
Total é : 385

Gostaria de entender passo-a-passo como o programa esta gerando os valores

1
4
9
16
25
36
49
64
81
100

Obrigado

4 Respostas

Master.Abs

O que acontece ai é o seguinte:

Voce tem um condição onde x = 1 ou seja x recebe valor 1.

public static void main(String[] args) {  
           
         int y,x = 1, total= 0;  
   
         while (x <= 10){  //Enquanto x for menor ou igual a 10 continuará até que x seja maior que 10
   
             y= x *x;  // y recebe x * x, ou seja, na primeira passagem x vale 1 como declarado. Então será 1 * 1
             System.out.println(y);  //Imprime y que é 1
             total += y;  //Essa sintaxe significa que total recebe ele mesmo + y seria o mesmo que total = total + y
//Como total vale 0 ele somará os demais até que seja igual a 10
             ++x;  // Incrementa x, ou seja, x que é 1 recebe +1 e x passa a valer 2 e volta o processo com x valendo 2. 
//O fim desse processo é quando x for maior que 10.
         }  
   
         System.out.println("Total é : " + total);  //Quando acaba a condição do bloco while apresenta a soma do total total.
}

Flw

VictorMatuk
roda a primeira vez

int y = 1;

int x = 1;

total = 0;

while (x <= 10){

y= x *x; // y = 1 * 1

System.out.println(y); // imprime 1

total += y; // pegar o que tem no total e soma com y. resultado de total = 1

++x; // x era 1, incrementa em 1, fica 2

}
roda de novo

int y = 1;

int x = 2;

total = 1;
while (x <= 10){

y= x *x; // y = 2 * 2

System.out.println(y); // imprime 4

total += y; // pegar o que tem no total e soma com y. resultado de total = 5

++x; // x era 2, incrementa em 1, fica 3

}
roda de novo

int y = 4;

int x = 3;

total = 5;
while (x <= 10){

y= x *x; // y = 3 * 3

System.out.println(y); // imprime 9

total += y; // pegar o que tem no total e soma com y. resultado de total = 14

++x; // incrementa x em 1

}
roda de novo

int y = 9;

int x = 4;

total = 14;
while (x <= 10){

y= x *x; // y = 4 * 4

System.out.println(y); // imprime 16

total += y; // pegar o que tem no total e soma com y. resultado de total = 30

++x; // incrementa x em 1

}

e por ai vai

edumoreira

Olá,

Sugiro que pesquise sobre debug no eclipse ou netbeans, o que vc estiver usando pra programar, escreva o programa em uma destas IDE’s e rode em modo debug, assim vc pode acompanhar a execução do programa linha a linha.

Desta forma vai entender perfeitamente como ele funciona.

… :arrow:

S

Obrigado a todos pela ajuda …

Edu, vou me orientar melhor sobre sua sugestão …

Criado 18 de abril de 2011
Ultima resposta 18 de abr. de 2011
Respostas 4
Participantes 4