[resolvido] duvida for

17 respostas
wellvsilva

ola galera estou aki novamente to fazendo um exercicio que diz:

Apresente uma classe que mostre a soma dos cem primeiros numeros inteiros, entao eu fiz com um for como segue abaixo:

public class Atividade3 {
    private static String i;
    private static int soma;
    public static void main(String args[]){
        for (int i=0; i<100; i++){
            soma=i+1;
          
            JOptionPane.showMessageDialog(null, "Somatório:" + soma);
        }
        
    }
    
}

17 Respostas

R

[email removido:
]ola galera estou aki novamente to fazendo um exercicio que diz:

Apresente uma classe que mostre a soma dos cem primeiros numeros inteiros, entao eu fiz com um for como segue abaixo:

public class Atividade3 {
    private static String i;
    private static int soma;
    public static void main(String args[]){
        for (int i=0; i<100; i++){
            soma=i+1;
          
            JOptionPane.showMessageDialog(null, "Somatório:" + soma);
        }
        
    }
    
}

Aí você vai estar imprimindo toda hora a soma… vc tem que imprimir uma vez só, não é isso que diz o exercício ? que seria a soma dos 100…

private static String i;
	private static int soma;

	public static void main(String args[]) {
		for (int i = 0; i < 100; i++) {
			soma = i + 1;

		}

		JOptionPane.showMessageDialog(null, "Somatório:" + soma);

	}

Pra que você está usando este: private static String i; ?

Coloca pra imprimir o resultado depois do “for”…

abraços.

xandevieira

Esta quase certo.
A cada iteração vc esta imprimindo, ela deveria ficar fora do laço.

jks1903

Cara, com essa lógica, na primeira iteração, soma valera 1 (0+1), depois 2 (1+1) e assim por diante.
O valor final de soma será 100 (99+1).

Se o exercicio pede para acumular os valores, você deveria fazer algo parecido com isso:

public class Atividade3 {  
    private static String i;  
    private static int soma=0;  
    public static void main(String args[]){  
        for (int i=0; i<100; i++){  
            soma = soma + i;//poderia ser soma += i, mas daquela forma fica mais facil pra compreender no inicio dos estudos.  
            
             
        }  
        JOptionPane.showMessageDialog(null, "Somatório:" + soma); //tirar do laço
          
    }  
      
}

Tenta aí.

*Edit: nao haiva visto os posts anteriores.

D
[email removido:
]ola galera estou aki novamente to fazendo um exercicio que diz:

Apresente uma classe que mostre a soma dos cem primeiros numeros inteiros, entao eu fiz com um for como segue abaixo:

public class Atividade3 {
    private static String i;
    private static int soma;
    public static void main(String args[]){
        for (int i=0; i<100; i++){
            soma=i+1;
          
            JOptionPane.showMessageDialog(null, "Somatório:" + soma);
        }
        
    }
    
}

public class Atividade3 {  
    private static String i;  // aqui você esta declarando i como string, mas não a utilizará nenhuma vez
    private static int soma;  // não é necessario ser static mas tudo bem
    public static void main(String args[]){  
        for (int i=0; i<100; i++){  
            soma=i+1; //essa soma não funcionará pois: na primeira execução somará 0+1=1 blz, na segunda vai redefini-la para 1+1=2
//assim continuamente ate que o resultado final será 99+1=100 ou seja, não será a soma
            
            JOptionPane.showMessageDialog(null, "Somatório:" + soma);  // colocando o JOption... aqui será exibida 100x a caixa de dialogo
        }  
          
    }  
      
}

deveria ser mais ou menos assim:

public class Atividade3 {  
    private static String i;  
    private static int soma = 0;  
    public static void main(String args[]){  
        for (int i=0; i<100; i++){  
            soma += i;
            
        }  
          JOptionPane.showMessageDialog(null, "Somatório:" + soma);  
    }  
      
}
wellvsilva

mas o resultado tem q da 5050 pois ele vai somar, todos os numero de 1 a 100 (1+2+3…+99+100)

como devo fazer para o resultado ser 5050?

D

e tira o String i

D

para dar 5050 vc tem que somar de 1 à 100
e não de 0 à 99.

basta colocar i <= 100 nor for

:wink:

jks1903

[email removido:
]mas o resultado tem q da 5050 pois ele vai somar, todos os numero de 1 a 100 (1+2+3…+99+100)

como devo fazer para o resultado ser 5050?

Não tenho como implementar a logica agora para verificar o resultado.

Mas se o resultado final deu diferente, a soma entao não é 5050.
A lógica ali em cima está correta. Irá acumular a soma dos 100 primeiros inteiros(começando em zero).

D

opa, o static que falei foi errado como vc declarou a variavel de classe tem que ser static sim para essa função.
nao seria necessario se tivesse declarado como somente int soma dentro do método main

D
import javax.swing.JOptionPane;

public class JavaApplication3 {    

    public static void main(String args[]){
    int soma = 0;      
        for (int i=0; i<=100; i++){  
            soma += i;
            
        }  
          JOptionPane.showMessageDialog(null, "Somatório:" + soma);  
    }  
}
R

É só fazer assim:

private static int soma;

	public static void main(String args[]) {

		for (int i = 1; i <= 100; i++) {

			soma = i + soma;

		}

		JOptionPane.showMessageDialog(null, "Somatório:" + soma);

	}

Abraços.

wellvsilva

obrigado a todos, eu axo q ta faltando um pouco de logica na hora de organizar as ideias, qua livro de logica vcs me recomendam? Mas tb axo q devo praticar mais…vlw pela a ajuda o resultado ficou assim:

public class Atividade3 {

    public static void main(String args[]) {

        int soma = 0;
        for (int i = 0; i <= 100; i++) {
            soma += i;
        }
        JOptionPane.showMessageDialog(null, "Somatório:" + soma);
    }

}

R

Coloca como resolvido, caso não tenha mais dúvidas…

D

um bom livro que sempre recomendo é o livro:
Head First - Programming : Ingles
tem ele em portugues tambem, a serie Use a Cabeça
mas normalmente as traduçoes nao sao tao boas.

e tem tambem o curso online de logica no site da softblue www.softblue.com.br

[]'s

R

[email removido:
]obrigado a todos, eu axo q ta faltando um pouco de logica na hora de organizar as ideias, qua livro de logica vcs me recomendam? Mas tb axo q devo praticar mais…vlw pela a ajuda o resultado ficou assim:

public class Atividade3 {

    public static void main(String args[]) {

        int soma = 0;
        for (int i = 0; i <= 100; i++) {
            soma += i;
        }
        JOptionPane.showMessageDialog(null, "Somatório:" + soma);
    }

}

Acredito que treinando exercícios está ótimo amigo, não vejo necessidade para “estudar” lógica, eu recomendo treinar os exercícios que você vai desenvolvendo melhor o seu raciocínio… Quando estiver preparado, já pule para Servlet + JSP… algo do tipo.

M

Estou tentando fazer com vetor mais o resultado eh sempre zero.
O que estou errando?

public static void main(String[] args) {
int[] var = new int [100];

int soma = 0;
	
	for (int i=0; i < 100 ; i++){
		
		soma = var[i] + soma;
		return soma;
	} 
	
	System.out.println(soma);
	

}
R

mamc091:
Estou tentando fazer com vetor mais o resultado eh sempre zero.
O que estou errando?

public static void main(String[] args) {
int[] var = new int [100];

int soma = 0;
	
	for (int i=0; i < 100 ; i++){
		
		soma = var[i] + soma;
		return soma;
	} 
	
	System.out.println(soma);
	

}</blockquote>

Amigo, veja se te serve:

public static void main(String[] args) {

		int soma = 0;

		for (int i = 0; i < 100; i++) {

			soma = i + soma;

		}

		System.out.println(soma);

	}
Criado 17 de fevereiro de 2012
Ultima resposta 25 de fev. de 2013
Respostas 17
Participantes 6