Estou tendo java básico na faculdade e estou com uma dúvida que na verdade é dúvida de lógica mesmo.
Estou aprendendo a programar, mas tenho muita dificuldade na lógica - o que atrapalha muito, mas to estudando kk
Queria que vcs dessem uma olhada no código e me ajudassem a entede-lo. Estamos fazendo um teste para saber se o número é primo ou não.
Minhas dúvidas são:
[list]Porque não se declara a variável i? [/list]
[list]Porque ele criou a linha boolean primo = true; ?[/list]
[list]Tentei fazer um chines desse For, mas não consegui. Podem me ajudar?[/list]
Bom é isso aguardo o help de vcs.
import javax.swing.JOptionPane; //Biblioteca java
public class CalculaPrimo { // classe sempre com a 1º letra maiúscula
public static void main(String[] args) {
String str= JOptionPane.showInputDialog("Digite um numero"); // janela
int p= Integer.parseInt(str); // declara a variável 'p' como integer
boolean primo = true; //declara a variável 'primo' como boolean recebendo true
for (int i=2; i<p ;i++){
if(p%i ==0){
primo = false;
}
}
if(primo){
System.out.println(p + " é primo");
}else{
System.out.println(p + " não é primo");
}
}
}
O algoritmo parte do pressuposto que o número é primo. Só caso haja alguma divisão inteira (sem resto) por qualquer número entre 2 e o número é que ele é considerado não primo.
p.s.: Tem várias formas de otimizar esse algoritmo.
[quote=ereinion17]Ele declara a variavel i direto dentro do for, como voce pode ver em negrito, mas caso voce ache mais comodo pode declarar antes. Declarar que será usada no for dentro dele ja se tornou meio que uma convenção
for (int i=2; i<p ;i++){[/quote]
não é isso, não.
não tem a ver com comodidade, tem a ver com escopo.
essa variável i, se declarada diretamente no for, só pode ser acessada por ele.
no exemplo abaixo, a variável i é declarada antes do for e pode ser acessada após a iteração por ele.
[code]public class Test {
public static void main(String[] args) {
int i;
for (i = 0; i < 10; i++) {
System.out.println(i);
}
System.out.println("numero de iteracoes: " + i);
}
E não é à toa. As variáveis devem ser declaradas no último momento possível, e no menor escopo possível.
Como o for é o único local onde a variável é usada, ali é o local ideal para declara-la. Se for fora, ela ainda existirá depois do for terminar.
Ele declara a variavel i direto dentro do for, como voce pode ver em negrito, mas caso voce ache mais comodo pode declarar antes. Declarar que será usada no for dentro dele ja se tornou meio que uma convenção
for (int i=2; i<p ;i++){
Porque ele criou a linha boolean primo = true; ?
ele criou a variavel boolean, apenas para testa-la mais abaixo e imprimir a mensagem “numero é primo” ou “numero não é primo”
if(primo){
System.out.println(p + " é primo");
}else{
System.out.println(p + " não é primo");
}
Tentei fazer um chines desse For, mas não consegui. Podem me ajudar?
Posta o seu codigo e diga quais problemas voce esta tendo, não podemos postar o problema resolvido, senão voce não aprende.