Ir ao conteúdo
  • Cadastre-se
Sávio Alexandre de Souza

Java Exercicio java operador while

Posts recomendados

Bom dia Pessoal, tudo bem?

Eu resolvi este exercicio em java, porém está refazendo o calculo após eu digitar sim, vou colocar o enunciado do problema eo código que fiz.

Se alguem puder dar uma olhada agradeço.

 

Escreva um programa para ler duas notas de um aluno. Calcule e imprima a média do semestre. O programa deve aceitar apenas pontuações válidas (uma pontuação deve caber no intervalo [0,10]). Cada pontuação deve ser validada separadamente.

O programa deve imprimir uma mensagem "novo calculo (1-sim 2-nao)" que significa "novo cálculo (1-sim 2-não)". Depois, a entrada será (1 ou 2). 1 significa um novo cálculo, 2 significa que a execução deve ser concluída.

Entrada
O arquivo de entrada contém vários valores de ponto flutuante positivo ou negativo (duplo). Após a entrada de 2 pontuações válidas, um número inteiro X será lido. Seu programa deve parar quando X = 2.

Saída
Se uma pontuação inválida for lida, deve ser impressa a mensagem "nota invalida". Quando duas pontuações válidas são lidas, a mensagem "media =" deve ser impressa seguindo a média entre essas 2 pontuações. A mensagem "novo calculo (1-sim 2-nao)" deve ser impressa após a leitura de X. Essa mensagem deve ser exibida novamente se o número de entrada padrão para X for menor que 1 ou maior que 2.

import java.util.Locale;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Locale.setDefault(Locale.US);
		
		Scanner sc = new Scanner(System.in);
		
		float n1 = sc.nextFloat();
		float n2 = sc.nextFloat();
		double media;	
		int x = sc.nextInt();
		while(x != 2) {
			if((n1 >= 0.0 && n1<= 10.0) && (n2 >= 0.0 && n2 <=10.0)) {
				 media = (n1 + n2)/2;
				 System.out.printf("media = %.2f",media);
			}else {
				System.out.println("Nota inválida");
			}
			System.out.println("Deseja fazer novo calculo? [1-SIM / 2-NÂO]");
			x= sc.nextInt();
		}
		

	}

}

 

adicionado 9 minutos depois

Pessoal descobri o erro, minhas variáveis eu declarei fora do while, e o correto seria dentro do while😂

Coisa de iniciante mesmo.

Obrigado ao que me responderam.

ps. vou postar o código com a correção.

import java.util.Locale;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Locale.setDefault(Locale.US);
		
		Scanner sc = new Scanner(System.in);
		double media;	
		int x = 1;
		
		while(x != 2) {
			float n1 = sc.nextFloat();
			float n2 = sc.nextFloat();
			if((n1 >= 0.0 && n1<= 10.0) && (n2 >= 0.0 && n2 <=10.0)) {
				 media = (n1 + n2)/2;
				 System.out.printf("media = %.2f\n",media);
			}else {
				System.out.println("Nota inválida");
			}
			System.out.println("Deseja fazer novo calculo? [1-SIM / 2-NÂO]");
			x= sc.nextInt();
		}
		

	}

}

 

  • Curtir 1
  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Aprenda_a_Ler_Resistores_e_Capacitores-capa-3d-newsletter.jpg

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!