Erro na condição[RESOLVIDO]

12 respostas
R

[color=darkblue]Eu compilo e executo, mais quando eu executo a condição que esta em negrito ele não imprime a frase: "Eita porra se garantiu viu?!" , ele imprime a frase da condição de cima: "Voce foi aprovado", alguem pode me ajudar pois não estou encontrando o erro.[/color]

import java.util.Scanner;
     
	 public class Boletim {
	 
	      public static void main(String s[]) {
		     Scanner entrada = new Scanner(System.in);
			 System.out.println("Digite seu nome: ");
			 String nome = entrada.nextLine();
			 
			 System.out.println("Digite sua nota do 1 bimestre");
			 double nota1 = entrada.nextDouble();
			 
			 System.out.println("Digite sua nota do 2 bimestre");
			 double nota2 = entrada.nextDouble();
			 
			 System.out.println("Digite sua nota do 3 bimestre");
			 double nota3 = entrada.nextDouble();
			 
			 System.out.println("Digite sua nota do 4 bimestre");
			 double nota4 = entrada.nextDouble();
			 
			     
				 
				 if ((nota1+nota2+nota3+nota4) / 4 > 6) {
				 System.out.println(nome+":"+"Voce foi aprovado");
			 
			    } else if((nota1+nota2+nota3+nota4) / 4 > 8 ) {
				System.out.println(nome+":"+"Eita porra se garantiu viu?!");
                 
                } else {
				System.out.println(nome+":"+"Ah um Junior, vai estudar p...");
                }
		 }			
				  
	 }

12 Respostas

getAdicted
Se for maior do que 8, sempre será maior do que 6, portanto, a primeira expressão:
if ((nota1+nota2+nota3+nota4) / 4 > 6) { 
System.out.println(nome+":"+"Voce foi aprovado"); 
}
... será sempre verdadeira quando você quiser, por exemplo, que seja imprimido o que está dentro da segunda expressão.

(Quando for postar, coloque seu código entre as tags [code] [/code)

[]'s

R

getAdicted
não entendi sua resposta ,

quando eu digito nas notas 9, 9, 9, 9 é para aparecer a segunda frase e não a primeira pois a media das 4 notas são acima de 9, pode me explicar a solução para aparecer a segunda frase?

getAdicted
RLeonardo:
getAdicted não entendi sua resposta ,

quando eu digito nas notas 9, 9, 9, 9 é para aparecer a segunda frase e não a primeira pois a media das 4 notas são acima de 9, pode me explicar a solução para aparecer a segunda frase?

Oi,

Vamos lah, (9 + 9 + 9 + 9) / 4 > 6, certo? Certo!

Quando a primeira expressão:
if((nota1+nota2+nota3+nota4) / 4 > 6) {   
System.out.println(nome+":"+"Voce foi aprovado");   
}
... for avaliada, ela será verdadeira, será impresso o que está entre parenteses e imediatamente sairá do programa. Eu acho que o que você quer fazer, eh isso:
double nota = nota1 + nota2 + nota3 + nota4 / 4;

		if(nota > 6 && nota < 8) {
			System.out.println(nome + ":" + "Voce foi aprovado");

		} else if (nota > 8) {
			System.out.println(nome + ":" + "Eita porra se garantiu viu?!");

		} else {
			System.out.println(nome + ":" + "Ah um Junior, vai estudar p...");
		}
Pode ser melhorado.

[]'s

ErickRAR
getAdicted:
... for avaliada, ela será verdadeira, será impresso o que está entre parenteses e imediatamente sairá do programa. Eu acho que o que você quer fazer, eh isso:
double nota = nota1 + nota2 + nota3 + nota4 / 4;

		if(nota > 6 && nota < 8) {
			System.out.println(nome + ":" + "Voce foi aprovado");

		} else if (nota > 8) {
			System.out.println(nome + ":" + "Eita porra se garantiu viu?!");

		} else {
			System.out.println(nome + ":" + "Ah um Junior, vai estudar p...");
		}
Pode ser melhorado.

[]'s

coitado do cara que tirar 8. :D

getAdicted
ErickRAR:
getAdicted:
... for avaliada, ela será verdadeira, será impresso o que está entre parenteses e imediatamente sairá do programa. Eu acho que o que você quer fazer, eh isso:
double nota = nota1 + nota2 + nota3 + nota4 / 4;

		if(nota > 6 && nota < 8) {
			System.out.println(nome + ":" + "Voce foi aprovado");

		} else if (nota > 8) {
			System.out.println(nome + ":" + "Eita porra se garantiu viu?!");

		} else {
			System.out.println(nome + ":" + "Ah um Junior, vai estudar p...");
		}
Pode ser melhorado.

[]'s

coitado do cara que tirar 8. :D

double nota = nota1 + nota2 + nota3 + nota4 / 4;

		if(nota > 6 && nota < 8) {
			System.out.println(nome + ":" + "Voce foi aprovado");

		} else if (nota > 8) {
			System.out.println(nome + ":" + "Eita ... se garantiu viu?!");

		} else {
			System.out.println(nome + ":" + "Ah um Junior, vai estudar p...");
		}
[/quote]

Censurado, rs

[]'s

R

getAdicted

Quando vc me falou isso, eu troquei as condiçoes e funcionou oh kra, pois ele executa a 1ª condição se for verdadeira vlw ai pela ajuda.

Oi,

Vamos lah, (9 + 9 + 9 + 9) / 4 > 6, certo? Certo!

Quando a primeira expressão:

if((nota1+nota2+nota3+nota4) / 4 > 6) {     
System.out.println(nome+":"+"Voce foi aprovado");     
}

... for avaliada, ela será verdadeira, será impresso o que está entre parenteses e imediatamente sairá do programa.
Eu acho que o que você quer fazer, eh isso:

Coloquei assim agora:

if ((nota1+nota2+nota3+nota4) / 4 > 8) {
				 System.out.println(nome+":"+"Eita porra se garantiu viu?!");
			 
			    } else if((nota1+nota2+nota3+nota4) / 4 >= 6) {
				System.out.println(nome+":"+"Voce foi aprovado");
                 
                } else {
				System.out.println(nome+":"+"Ah um Junior, vai estudar p...");
                }

ficou do jeito que eu queria, imprimindo o que é certo nas condiçoes.

getAdicted
RLeonardo:
getAdicted

Quando vc me falou isso, eu troquei as condiçoes e funcionou oh kra, pois ele executa a 1ª condição se for verdadeira vlw ai pela ajuda.

Oi,

Vamos lah, (9 + 9 + 9 + 9) / 4 > 6, certo? Certo!

Quando a primeira expressão:

if((nota1+nota2+nota3+nota4) / 4 > 6) {     
System.out.println(nome+":"+"Voce foi aprovado");     
}

... for avaliada, ela será verdadeira, será impresso o que está entre parenteses e imediatamente sairá do programa.
Eu acho que o que você quer fazer, eh isso:

Coloquei assim agora:

if ((nota1+nota2+nota3+nota4) / 4 > 8) {
				 System.out.println(nome+":"+"Eita porra se garantiu viu?!");
			 
			    } else if((nota1+nota2+nota3+nota4) / 4 >= 6) {
				System.out.println(nome+":"+"Voce foi aprovado");
                 
                } else {
				System.out.println(nome+":"+"Ah um Junior, vai estudar p...");
                }

ficou do jeito que eu queria, imprimindo o que é certo nas condiçoes.

Fico feliz em poder ajudar. Altera o assunto do seu 1º post e adiciona [RESOLVIDO].

[]'s

D

import java.util.Scanner;
public class TiposSe {

public static void main(String [] args) {
Scanner entrada = new Scanner(System.in);
System.out.println("Digite seu nome: ");
String nome = entrada.nextLine();

System.out.println("Digite sua nota do 1 bimestre");
double nota1 = entrada.nextDouble();

System.out.println("Digite sua nota do 2 bimestre");
double nota2 = entrada.nextDouble();

System.out.println("Digite sua nota do 3 bimestre");
double nota3 = entrada.nextDouble();

System.out.println("Digite sua nota do 4 bimestre");
double nota4 = entrada.nextDouble();

double media = (nota1+nota2+nota3+nota4) / 4 ;


if (media > 6 && media <=7) {
System.out.println(nome+": "+"Voce foi aprovado");

} else if(media >= 8) {
System.out.println(nome+": "+"Eita porra se garantiu viu?!" + "Sua nota foi "+media);

} else {
System.out.println(nome+": "+"bicho burro vai estudar mah" + "Sua nota foi "+media);
}
}
}
[code]

A
ErickRAR:
getAdicted:
... for avaliada, ela será verdadeira, será impresso o que está entre parenteses e imediatamente sairá do programa. Eu acho que o que você quer fazer, eh isso:
double nota = nota1 + nota2 + nota3 + nota4 / 4;

		if(nota > 6 && nota < 8) {
			System.out.println(nome + ":" + "Voce foi aprovado");

		} else if (nota > 8) {
			System.out.println(nome + ":" + "Eita porra se garantiu viu?!");

		} else {
			System.out.println(nome + ":" + "Ah um Junior, vai estudar p...");
		}
Pode ser melhorado.

[]'s

coitado do cara que tirar 8. :D

kkkkkk....

A

Uma outra forma de ser feito ...

/**
 * @author Andy11x
 */
public class Notas {
    
    public static void main(String[] args) {
        String nome;
        double notas = 0; 
        int cont = 1;
        
        System.out.print("Digite seu Nome: ");
        nome = new Scanner(System.in).nextLine();        
        do{
            System.out.print("Digite sua nota do " + cont +  " bimestre: ");
            notas += new Scanner(System.in).nextDouble();
            cont++;            
        }while(cont <= 4);        
        System.err.println(resultado(notas, nome));
    }
    
    private static String resultado(double notas, String nome) {
        double media = notas / 4;        
        return media >= 6 && media <= 7 ? "Voce foi aprovado " + nome : 
               media > 7 ? "Eita porra se garantiu viu " + nome : 
               "Ah " + nome + " você reprovou :(\n";
    }
}
nanoverso
getAdicted:
ErickRAR:
getAdicted:
... for avaliada, ela será verdadeira, será impresso o que está entre parenteses e imediatamente sairá do programa. Eu acho que o que você quer fazer, eh isso:
double nota = nota1 + nota2 + nota3 + nota4 / 4;

		if(nota > 6 && nota < 8) {
			System.out.println(nome + ":" + "Voce foi aprovado");

		} else if (nota > 8) {
			System.out.println(nome + ":" + "Eita porra se garantiu viu?!");

		} else {
			System.out.println(nome + ":" + "Ah um Junior, vai estudar p...");
		}
Pode ser melhorado.

[]'s

coitado do cara que tirar 8. :D

double nota = nota1 + nota2 + nota3 + nota4 / 4;

		if(nota > 6 && nota < 8) {
			System.out.println(nome + ":" + "Voce foi aprovado");

		} else if (nota > 8) {
			System.out.println(nome + ":" + "Eita ... se garantiu viu?!");

		} else {
			System.out.println(nome + ":" + "Ah um Junior, vai estudar p...");
		}

Censurado, rs

[]'s[/quote]

O Bruce Lee não estava se referindo ao fato do if classificar quem tira exatamente 8 ser reprovado (parece que falta um >=) ?

getAdicted
nanoverso:
getAdicted:
ErickRAR:
getAdicted:
... for avaliada, ela será verdadeira, será impresso o que está entre parenteses e imediatamente sairá do programa. Eu acho que o que você quer fazer, eh isso:
double nota = nota1 + nota2 + nota3 + nota4 / 4;

		if(nota > 6 && nota < 8) {
			System.out.println(nome + ":" + "Voce foi aprovado");

		} else if (nota > 8) {
			System.out.println(nome + ":" + "Eita porra se garantiu viu?!");

		} else {
			System.out.println(nome + ":" + "Ah um Junior, vai estudar p...");
		}
Pode ser melhorado.

[]'s

coitado do cara que tirar 8. :D

double nota = nota1 + nota2 + nota3 + nota4 / 4;

		if(nota > 6 && nota < 8) {
			System.out.println(nome + ":" + "Voce foi aprovado");

		} else if (nota > 8) {
			System.out.println(nome + ":" + "Eita ... se garantiu viu?!");

		} else {
			System.out.println(nome + ":" + "Ah um Junior, vai estudar p...");
		}

Censurado, rs

[]'s

O Bruce Lee não estava se referindo ao fato do if classificar quem tira exatamente 8 ser reprovado (parece que falta um >=) ?[/quote]

Correto, desculpe a minha desatenção.

[]'s

Criado 18 de julho de 2014
Ultima resposta 29 de set. de 2014
Respostas 12
Participantes 6