Armazenamento em ujma variável dentro de um loop for

7 respostas
java
R

Boa noite! Por favor:
Como faço para cada vez que um loop for repetir, guardar tal valor em uma variável?
(Se o loop for executado 5 vezes, terei 5 variáveis)
Meu objetivo é comparar os valores.

7 Respostas

J

Que tal valor é esse? Não entendi sua dúvda.
Voce quer fazer contagem quando um determinado for for percorrido ?

R

Percorro toda uma matriz. Mas para cada coluna, percorro todas as linhas daquela coluna.
Quero fazer assim: para coluna 0, some os valores das linhas(0, 1…matriz.length) na coluna 0. Guarde esse valor.
Repita para a coluna 1, coluna 2…

**ou seja: somar os valores de cada coluna.

Depois quero comparar esses valores e retornar a coluna que deu o maior número. (isso eu tenho ideia de como fazer, mas não como guardar os valores para cada coluna).

V

Acho que uma boa opção seria criar um vetor…

R

hmm, cada vez que repetir o loop, guardar o valor em um array?!

J

Entendi. Algo assim ajuda?

import java.util.Scanner;

public class Matriz

{ public static void main(String args[])

{ Scanner entrada = new Scanner(<a href="http://System.in">System.in</a>);

int x, y, matriz[][];

matriz = new int[2][2];
for (x=0;x<2;x++)
    { for (y=0;y<2;y++)
		{ System.out.print("Digite o elemento " + x + "-" + y + " ");
		  matriz[x][y] = entrada.nextInt();
		}
    }
  soma_matriz(matriz);
  System.out.println("\nSoma da matriz\n\n");
  
  for (x=0;x<2;x++)
    { for (y=0;y<2;y++)
		{ System.out.print(matriz[x][y] + "  ");
		}
	  System.out.println();	
    }
}

public static void soma_matriz(int m[][])
{ int i, j, me, v;
  for (i=0;i<2;i++)
    { v=m[i][i];
      for (j=0;j<2;j++)
		m[i][j] = m[i][j] + v;
    }
}

}

R

Não era bem isso, mas você me deu uma ideia. Valeeuu!!! :]

G

Olá, eu estava fazendo alguns exercícios quando eu me deparei exatamente com esse problema…
Após algum tempinho tentando resolver cheguei a dois resultados, e eu espero que isso ajude alguém a pelo menos não ter todo o trabalho que eu tive…

A primeira opção, conforme a descrição, armazenar os valores de cada interação de um loop em uma array para comparar menor e maior:

`import java.util.Arrays;

import java.util.Scanner;
public class Main{

public static void main(String[] args) {

Scanner in = new Scanner(System.in);
int[] numeros = new int[5];

    for (int i = 0; i < 5; i++) {
        System.out.print("Digite um número: ");
        numeros[i] = in.nextInt();
    }

    Arrays.sort(numeros); // organiza os números em ordem crescente
    
    System.out.println(numeros[4]); //Maior Número
    System.out.println(numeros[0]); //Menor Número
}

}`

A segunda opção não é caso você não queria usar arrays, no meu caso foi isso, meu professor pediu pra resolver isso com um loop. Então cheguei a essa conclusão:
`import java.util.Scanner;

public class Main{

public static void main(String[] args) {

    Scanner sexo = new Scanner(System.in);
    System.out.print("Digite: \n" );
    int x = sexo.nextInt();

    int y = x;
    int z = x;

    for (int i = 0; i < 4; i++){
        System.out.print("Digite: " );
        x = sexo.nextInt();

        if (x<y){
            y = x;
        }
        if (x>z){
            z = x;
        }

    }
    System.out.println("Menor " + z);
    System.out.println("Maior " + y);
}

}`
Nesse último, a cada interação do loop, ele faz um check pra ver se o número digitado for maior ou menor que a variável temporária respectiva de maior e menor. É meio confuso, mas se analisar é lógica pura então boa sorte.

Criado 29 de maio de 2016
Ultima resposta 19 de set. de 2022
Respostas 7
Participantes 4