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.
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:
importjava.util.Scanner;publicclassNota{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);doublenota1=0;doublenota2=0;double[]media=newdouble[10];inti=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
Renan_w
Nao ta funcionando…
R
Renan_w
O programa completo eh esse..
//Questao3.javaimportjava.util.Scanner;publicclassQuestao3{publicstaticvoidmain(Stringargs[]){doublenota1=0;doublenota2=0;doublemedia[]=newdouble[1000];doublemaxMedia=0;doubleminMedia=11;intnotasTurma[]=newint[10];inti=0,j=0;Scannerinput=newScanner(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