Duvidas Com For/IF E WHILE

Bom dia pessoal,

Iniciei o meu aprendizado java e tenho algumas duvidas sobre como ler a sintaxe dos comandos for/if e while, tipo:

for (int i = x; i < y; i++) {
if (i % 19 == 0) {
System.out.println("Achei um número divisível por 19 entre x e y");
break;
}
}

como eu leio um codigo assim?

Tentei fazer um exercicio que é o seguinte: "Imprima todos os números de 150 a 300"
e fiz assim:

package exerciciox;
import javax.swing.JOptionPane;

public class exerciciox {
    
   public static void main(String[] args) {
        
        for (int i = 150; i >150 ; i++) {
if(i > 150 && i < 300) {
continue;
}
JOptionPane.showMessageDialog(null,i);
System.out.println(i);
}
        
        }

}

ele dá a mensagem "CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)
" só que naum imprime nada?
ONDE EU ESTOU ERRANDO? :?:
o QUE É PROVAVEL QUE EU NÃO TENHA ENTENDIDO CORRETAMENTE? :?:
Grato a todos desde já!
Abs!

Aqui for (int i = 150; i >150 ; i++)
Você inicializou com 150 e botou a condição i > 150, ela é falsa.

Exemplo: Um for (int i = 0; i < 10; i++) vai ser executado enquanto i for menor que 10, e vai incrementar a cada iteração.
Pra você imprimir de 150 a 300 seu loop deve ser de 150 a 300.

Se não me engano, as variáveis inicializadas no for (por exemplo seu i) só existem dentro do seu for…

Se vc for imprimir o “i” no JOptionPane, ela nã aparecerá…

[quote=fiaux]Aqui for (int i = 150; i >150 ; i++)
Você inicializou com 150 e botou a condição i > 150, ela é falsa.

Exemplo: Um for (int i = 0; i < 10; i++) vai ser executado enquanto i for menor que 10, e vai incrementar a cada iteração.
Pra você imprimir de 150 a 300 seu loop deve ser de 150 a 300.[/quote]

leo.mendes, o certo seria voce colocar assim:

for (int i = 150; i < 300 ; i++)

Leia-se:

  • Declara e inicializa a variável “i” com o valor “150”
  • Itere até que “i” seja menor que “300”, incrementando o “i” em “1” a cada iteração

O comando “for” é composto por três “partes”

Ex:
for (parte1;parte2,parte3)

Na parte1, voce declara/inicializa suas variáveis
Na parte2, voce coloca a condição de parada do “for” (tem q ser um teste que retorne verdadeiro ou falso)
Na parte3, voce coloca a iteração das variáveis (não necessariamente a iteração, mas isso não é importante pra vc q tah começando agora)

[quote=claudneto]Se não me engano, as variáveis inicializadas no for (por exemplo seu i) só existem dentro do seu for…

Se vc for imprimir o “i” no JOptionPane, ela nã aparecerá…[/quote]

Isso que voce falou sobre escopo é valido (se a variavel for declarada na assinatura do “for”, ela estará visivel apenas dentro do “for”), porém o uso do “i” que ele fez para o JOptionPane está no escopo do for. Portanto é válido…

O erro provavelmente está mesmo no que o “fiaux” falou, já que a condição do for não é atendida nem na primeira iteração…
E se por acaso ele colocasse “i>=150” (caso que daria certo pois o “i” começa com 150), ficaria rodando pra sempre pois a condição que ele colocou “i>=150” seria pra sempre válida, visto que o “i” sempre será incrementado em “1”.

OBS: se eu me equivoquei com alguma coisa, favor retificar…

Espero que seja útil :smiley:

[quote=claudneto]Se não me engano, as variáveis inicializadas no for (por exemplo seu i) só existem dentro do seu for…

Se vc for imprimir o “i” no JOptionPane, ela nã aparecerá…[/quote]

axo que está errado. Qdo vc inicializa no for o “i”, ele pode ser usado dentro do option pane por estar dentro do escopo dele.

Uma dica para que o código fique mais organizado: Selecione tudo (ctrl+a) e dpois aperte ctrl+shift+f

espero ter ajudado t+

[code]package exerciciox;
import javax.swing.JOptionPane;

public class exerciciox {

public static void main(String[] args) {

for (int i = 150; i <= 300 ; i++) {  
    JOptionPane.showMessageDialog(null,i);  
}           

}
} [/code]

Cara agora estou dizendo que i deve ir de 150 (número que vc iniciou) até 300 (número final da minha lista)…

Aquela condição para o comando continue tava sem lógica alí no meio… e a menos que seja necessário, ou para um debug pessoal seu, não utilize 2 formas de apresentação de dados… basta 1, escolhi o JOptionPane porque é gráfico… heheheehe

Qualquer dúvida estamos aí…

Falows :wink:

Ah sim… esqueci da questão do Escopo… os amigos acima estão certos, só é válido dentro do laço… fora dele a variável i não existe…

Realmente, eu não tinha percebido que o JOptionPane está dentro do for…

Erro meu galera…foi mal!

Galera muito grato a todas as explicações mas acho que pra entender todas essas condições e critérios que vocês falaram vou ter que praticar bastante!!
Valeu mesmo pessoal!!!
Abs!

Sim…

Praticar é SEMPRE bom…é na realidade o mínimo que vc tem que fazer pra aprender algo!