Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Get jobs

logica - java usando If else para validar entradas para o array

Recommended Posts

Pessoal, me ajudem, fiz um programa onde recebemos n idades sendo que no final trago o percentual de idades acimas de 25 anos e também o indice da maior e menor informada, até ai tudo bem, agora como faço pra que as idades informadas sejam > 0.

 

fiz porem mesmo quando a idade não valida o contador em for acrescenta sempre + 1

 

com o comando while eu consigo tranquilamente.

 

me ajuda.

import java.util.Scanner;
public class vetorIdade{
	public static void main(String args[]){
		Scanner entrada = new Scanner(System.in);
		int i, 
	        indma =0,
	        indme=0, 
	        menor=0, 
	        maior=0, 
	        n = 10;
		int vid[] = new int[n];
		float resul =0,
				avc =0;
		
		for(i=0;i<n;i++){
		    System.out.println("entre com a idade do "+(i+1)+ " de "+n);
		    vid[i] = entrada.nextInt();

		  if(i==0){
		    menor = vid[i];
		    maior = vid[i];
		  }
		  else
		    if(vid[i]>maior){
		       maior = vid[i];
		       indma = i;}
		    else
		      if(vid[i]<menor){
		         menor = vid[i];
		         indme = i;
		      }
		      if(vid[i]>=25){
		         avc = avc+1;
		         resul = (avc/n)*100;
		      }
		 } 
		for(i = 0; i<n;i++){
		    System.out.println("A idade informada indice["+i+"] = "+vid[i]);
		}
		
		System.out.println("A maior idade informada foi: indice["+indma+"] = "+maior);
		System.out.println("A menor idade informada foi: indice["+indme+"] = "+menor);
		System.out.println("E o percentual de idade acima de 25 anos e de: "+resul+"%");
		}
	}

Compartilhar este post


Link para o post
Compartilhar em outros sites
for(int i = 0; i < n; i++){
   System.out.println("entre com a idade do "+(i+1)+ " de "+n);
   vid[i] = entrada.nextInt();
   
   if(vid[i] > 0){
      // verificações, comparações...
   }

   for(i = 0; i<n;i++){
     System.out.println("A idade informada indice["+i+"] = "+vid[i]);
   }
   
   // exibe os resultados.
}

Se o problema for somente verificar se a idade lida é maior que 0.

Compartilhar este post


Link para o post
Compartilhar em outros sites
entendi, mas o contador esta contando mesmo quando o valor é negativo, tenho um limite de 10 entradas para o array, a cada interação o contado adiciona + 1 por conta dessa parte i++
o meu problema esta exatamente aqui nessa linha: System.out.println("entre com a idade do "+(i+1)+ " de "+n);
exemplo quero que o contado apenas conte quando a idade for >0

for(int i = 0; i < n; i++){
   System.out.println("entre com a idade do "+(i+1)+ " de "+n);
idade = entrada.nextInt();
  if(idade>=0)
  vid[i] = idade;

grato

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.