Exercício FOR livro Use a cabeça

1 resposta
M

/*

  • To change this license header, choose License Headers in Project Properties.
  • To change this template file, choose Tools | Templates
  • and open the template in the editor.
    */

package output;

/**
*

  • @author Renan
    */
    public class Output {

    /**

    • @param args the command line arguments
      */
      public static void main(String[] args) {
      // TODO code application logic here
    Output o = new Output();
    
    o.go();
    
    }
    
    void go(){
    
    int y = 7;
    
    for( int x = 1; x < 8; x++){
    
    y++;
    
    if (x > 4) {
    
    System.out.print(++y + " ");
    
    }
         if (y>14) {
             System.out.println(" x = " + x);
             break;
         }}}}
    

Porque 13 15 e 6 a resposta ?.

Se x=1 y=8 então x=7 y=14.

O resultado ta última é X= 6 porque é y<14

Agora ++y ele não teria que pegar o valor de Y antes de chegar em X<8 que é X=7 onde Y = 14.

E depois pede ++y + < pega o valor de Y 14 e aumenta mais 1 onde fica 15.

Onde surgi esse número 13 ou minha lógica está errada, desculpe a pergunta simples mais estou aprendendo e estou no começo do livro ainda.

1 Resposta

javahunter

Ola amigo,

Comece a usar a tag code, porque assim fica impossível visualizar seu código.

public class Output {

    public static void main(String[] args) {

        Output o = new Output();
        o.go();
    }
    // esses número comentado é o valor da variável em cada loop do for
    void go() {
        int y = 7;
        for (int x = 1; x < 8; x++) {
            y++; // 8, 9, 10, 11, 12          , 14
            if (x > 4) {
                System.out.print(++y + " "); // 13      , 15

            }
            if (y > 14) {
                System.out.println(" x = " + x);   // x = 6
                break;
            }
        }
    }
}
Uma coisa que vc precisa saber é que usar o System.out com ++y ou y++ tem diferença na saida do console. ++y primeiro incrementa o valor e depois mostra na tela y++ mostra o valor atual na tela e depois incrementa o valor --------------------------------------------------------------------------------------------------------------------------------

Nesse código a variável x nunca chega ao valor 7 e somente ao valor 6, por isso tem o break na linha 19.

na última iteração do for o y tem o valor 14, mas acontece que o for passa pelo primeiro if de novo e incrementa + 1 na variável.

*Também comece a usar uma IDE, para vc debugar o código e entender o que esta acontecendo.

Criado 1 de maio de 2014
Ultima resposta 2 de mai. de 2014
Respostas 1
Participantes 2