Dúvida utilizando While ( acho que é while que devo usar)

3 respostas
E

[color=blue]package[/color] fuçando;
[color=blue]import[/color] java.util.Scanner;

[color=blue]public class[/color] Fuçando {

[color=blue]public static void[/color] main (String [] args){

Scanner stdin = new Scanner(System.in);

System.out.println("Qual foi a sua média de cálculo?");

[color=blue]int[/color] media = stdin.nextInt();

[color=blue]while[/color] (media > 10){
    
               System.out.println("Sua media não pode ser maior do que 10!");
   
}
[color=blue] if[/color] (media >= 5){

System.out.println(Então você foi aprovado.”);

}

[color=blue] else[/color] {

System.out.print(Então você foi reprovado.”);

[color=blue]if[/color] (media >=3 && media < 5){

System.out.println(" Mas pode fazer a recuperação.");

}
}   
}

}

como eu faço para caso a media for maior que 10 ele dizer que não pode ser maior que 10 e realizar a pergunta novamente?
agradeço desde já.

3 Respostas

pmlm

Onde tens o teu while o que tu queres é simplesmente um if: Se a média for maior que 10 mostra a mensagem de erro.

Para além disso tu queres é ter toda a lógica de pedir a pergunta e verificar se é ou não maior do que 10 dentro de uma estrutura de repetição, que pode ser um while mas que eu pessoalmente faria com do...while:
int media;

        do {
            System.out.println("Qual foi a sua média de cálculo?");
            media = stdin.nextInt();

            if (media > 10) {
                System.out.println("Sua media não pode ser maior do que 10!");
            }

        } while (media > 10);
Não sei os teus requisitos mas podes eventualmente simplificar:
int media;

        do {
            System.out.println("Qual foi a sua média de cálculo? (Introduza valor menor ou igual a 10) ");
            media = stdin.nextInt();

        } while (media > 10);
J

Bom, fiz um exemplo mais completinho para você ter uma ideia melhor.
Fiz no trabalho no notepad++, então não sei se está compilando, porém acredito que se der algum erro, não será difícil de resolver.

package teste;

import java.util.Scanner;

public class Teste {

    public static void main(String[] args) {
        int resultado;
        int nota1;
        int nota2;

        Scanner stdin = new Scanner(System.in);

        System.out.println("Digite sua Primeiro Nota: ");
        nota1 = stdin.nextInt();

        System.out.println("Digite sua Segunda Nota: ");
        nota2 = stdin.nextInt();

        resultado = (nota1 + nota2) / 2;

        if (resultado > 10) {
            System.out.println("Sua media não pode ser maior  que 10, refaça os cálculos");
        }
        else if (resultado >= 5 && resultado <= 10) {
            System.out.println("Você foi aprovado");
        }
        else if (resultado >= 3 && resultado < 5){
            System.out.println("Você poderá fazer a recuperação");  
        }
        else {
            System.out.println("Você foi reprovado");
        }
    }
}

Para a parte que você estava em dúvida, acho melhor usar uma cadeia de if, fica mais completinho e mais fácil de entender.

if (resultado > 10) {
            System.out.println("Sua media não pode ser maior  que 10, refaça os cálculos");
        }
        else if (resultado >= 5 && resultado <= 10) {
            System.out.println("Você foi aprovado");
        }
        else if (resultado >= 3 && resultado < 5){
            System.out.println("Você poderá fazer a recuperação");  
        }
        else {
            System.out.println("Você foi reprovado");
        }

Não sei se era isso que você queria e não sei se a intenção era em usar um while, apenas mostrei uma maneira mais simples de você fazer esse exemplo.

E

Muito obrigado aos 2 que me responderam, sanaram minha dúvida!
:slight_smile:

Criado 8 de abril de 2015
Ultima resposta 9 de abr. de 2015
Respostas 3
Participantes 3