Exercício FOR livro Use a cabeça

/*

  • 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.

Ola amigo,

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

[code]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;
        }
    }
}

}[/code]
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.