Duvida em relacao a Repeticao

5 respostas
R

Qual comando usar pra fazer uma repeticao… por exemplo

System.out.println ("Digite valores da nota1 entre 0 e 10 para o aluno, ou digite -1 para os resultados "+(i+1)+": "); nota1 = input.nextDouble(); if(nota1==-1)/ { break; } System.out.println ("Digite a nota 2 do aluno "+(i+1)+": "); nota2 = input.nextDouble(); media[i] = (nota1+nota2)/ 2;

quero colocar uma repeticao, no caso se o cara digitar valores que nao estejam entre 0 e 10 quero q apareca uma mensagem dizendo q valor esta incorreto, e que ele tenha q reinformar o valor.

Alguma ajuda?

5 Respostas

renzonuccitelli

Procure pelos laços de iteração “for” e “while” em alguma apostila básica de java, ou livro.

claudneto

No caso...vc teria que colocar um while assim:

import java.util.Scanner;

public class Nota {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		double nota1 = 0;
		double nota2 = 0;
		double[] media = new double[10];
		int i = 0;
		while (nota1 > 10 || nota1 < 0 || nota2 > 10 || nota2 < 0) {
		            System.out.println ("Digite valores da nota1 entre 0 e 10 para o aluno, ou digite -1 para os resultados "+(i+1)+": ");  
		            nota1 = sc.nextDouble();  
		            if(nota1==-1)  
		            {  
		                break;  
		            }  
		            System.out.println ("Digite a nota 2 do aluno "+(i+1)+": ");  
		            nota2 = sc.nextDouble();  
		            media[i] = (nota1+nota2)/ 2;
		            i++;
		}
	}
}

Não testei...mas parece que funciona...

R

Nao ta funcionando…

R

O programa completo eh esse..

//Questao3.java
import java.util.Scanner;

public class Questao3
{
	public static void main ( String args [] )
	{
	
		double nota1 = 0;	
		double nota2 = 0;
		double media[] = new double [1000];
		double maxMedia = 0;
		double minMedia = 11;
		int notasTurma[] = new int [10];
		int i=0, j=0;
		Scanner input = new Scanner(System.in);
		
		
		System.out.println();
		System.out.println();
		System.out.println();
		System.out.println("\t PROGRAMA PARA CALCULAR A MEDIA DOS ALUNOS, E MOSTRAR SUA FREQUENCIA");
		System.out.println();
		System.out.println();
		for(j=0; j<1000;j++)
		{
			media[j] = -1;
			}
		for(j=0; j<10;j++){
			notasTurma[j] = 0;
			}
		
		while(true){/*NESSE PONTO QUERO Q AS NOTAS SEJAM APENAS ENTRE -1 E 10, E SE FOR DIFERENTE PEDIR PARA REINFORMAR*/
			System.out.println ("Digite valores da nota1 entre 0 e 10 para o aluno, ou digite -1 para os resultados "+(i+1)+": ");
			nota1 = input.nextDouble();
			if(nota1==-1)
			{
				break;
				}
			System.out.println ("Digite a nota 2 do aluno "+(i+1)+": ");
			nota2 = input.nextDouble();
			media[i] = (nota1+nota2)/ 2;
			
			if(media[i]>maxMedia)
				maxMedia = media[i];
			if(media[i]<minMedia)
				minMedia = media[i];
			
			if((media[i] >= 0.0) && (media[i]<=1.0))/
				notasTurma[0]++;
			if((media[i] > 1.0) && (media[i]<=2.0))
				notasTurma[1]++;
			if((media[i] > 2.0) && (media[i]<=3.0))
				notasTurma[2]++;
			if((media[i] > 3.0) && (media[i]<=4.0))
				notasTurma[3]++;
			if((media[i] > 4.0) && (media[i]<=5.0))
				notasTurma[4]++;
			if((media[i] > 5.0) && (media[i]<=6.0))
				notasTurma[5]++;
			if((media[i] > 6.0) && (media[i]<=7.0))
				notasTurma[6]++;
			if((media[i] > 7.0) && (media[i]<=8.0))
				notasTurma[7]++;
			if((media[i] > 8.0) && (media[i]<=9.0))
				notasTurma[8]++;
			if((media[i] > 9.0) && (media[i]<=10.0))
				notasTurma[9]++;
			else
			{System.out.printf("Valor nao esta entre 0 e 10");
			break;
			}
			System.out.println("----------------------------------------");
			i++;	
		}
		
		for(i=0;i<1000;i++){
			if(media[i]==-1)
				break;
			
			System.out.println("A media do aluno "+(i+1)+" eh "+media[i]);
		}
		
		System.out.println("A maior media foi: "+maxMedia);
		System.out.println("A menor media foi: "+minMedia);
		
		System.out.println("Distribuicao de notas da turma:\n");
		for(i=0; i < 10;i++){
			System.out.println("Medias de "+i+" ate "+(i+1)+" foram: "+notasTurma[i]);
			}
		
		}
		
	}

O que ta me complicando eh, que eu quero colocar um intervalo de notas... nao quero que passe de 10 nem q sera menor q -1, pois -1 finaliza o programa...
Quero q apareca uma mensagem dizendo q o valor infomado estava incorreto e que o programa peca o valor novamente...
Ja tentei, sou novato no java...
Tentei do com o while...
porem

Por favor me ajudem

R

Alguma ajuda???

Criado 26 de setembro de 2008
Ultima resposta 27 de set. de 2008
Respostas 5
Participantes 3