Enviar um café pro programador

Pode me ajudar a transformar cafeína em código?

Como usar IF e ELSE: Testando e Escolhendo o que executar

Até agora na apostia Java Progressivo, nossos códigos foram procedurais. Ou seja, seguiram um ordem de execução: do começo ao fim, executando tudo.

Mas executamos tudo, sempre que usamos um programa?
Claro que não, escolhemos. Fazemos opções.

É isso o que o if else faz, nos permite optar por executar determinadas coisas.

Como usar o IF em Java

Em inglês quer dizer 'se'.
A sintaxe é:

if ( condição ){
    caso a condição seja verdadeira
    esse bloco de código será executado
}

E se não for verdade?
Não executa, ué.

Vamos testar a condição ' 1 é igual a 2?', que obviamente retornará 'false' e depois testar se 1 é igual 1.
Mas isso é em nossa língua. Como perguntamos isso pro computador?
Assim: if(1 == 2)
e depois: if(1 == 1)

Veja bem, é 1 == 2, e não 1 = 2.
1 == 2 é uma comparação, é uma pergunta, ela retorna um valor lógico!
Aqui que está a chave, só podemos colocar no if o que retorna valor lógico.

1 = 2 é uma atribuição de valores simplesmente!

Vamos aos códigos:
public class Ifelse {
    public static void main(String[] args) {
        if (1 == 2){
            System.out.println("Você nunca lerá essa mensagem, mwahuahuauha");
        }
       
        if (1 == 1){
            System.out.println("1 é igual a 1? Jura? ");
        }
    }
}

Como usar ELSE em Java

Do inglês: senão

O else só vem acompanhado do if, e ele só ocorre quando a condição do if é falsa.
A sintaxe é a seguinte:


if ( condição ){
    caso a condição seja verdadeira
    esse bloco de código será executado
} else {
    caso a condição seja falsa
    esse bloco de código que será executado
}


O else não recebe condição. Ele executa quando o if não executa.

Ou seja:
if (verdade)
faz isso
else
faz isso

Aprender if else não é aprender pro Java, é aprender para todas as outras linguagens.
Aliás, é aprender lógica. É matemática, é raciocínio.
Essa mesma base lógica é extremamente usada em Engenharia (Elétrica, Eletrônica, Telecomunicações), em Física, Matemática Discreta, todo tipo de Ciência, em chips, no Kernel dos Sistemas Operacionais, nos aviões e em tudo que envolver lógica e mundo digital.

Mas vamos fazer algo útil:

Problema: Crie um programa que recebe uma nota ( pela classe Scanner) e checa se você passou direto, ficou de recuperação ou foi reprovado na matéria, e exiba tal mensagem:
A regra é a seguinte:
Nota 7 ou mais: passou direto
Entre 5 e 7: tem direito de fazer uma prova de recuperação
Abaixo de 5: reprovado direto.


É importante que tente. Mesmo que não consiga ou consiga só uma parte do problema.
É assim que se evolui. Tentando..já passei minutos em alguns problemas, horas, dias em outros...alguns eu nem sabia por onde começar e corri pra ver a solução. Outros eu acordo de madrugada tendo uma ideia de como resolver.

Pelo menos pense, e clique aqui pra ver o seu desenvolvimento completo.

15 comentários:

marvin disse...

acho que o resultado nao esta dando certo

package pkgif.pkgelse;
import java.util.Scanner;
public class IfElse {
public static void main(String[] args) {
//entradas
float nota1; float nota2; float nota3; float nota4;
Scanner entrada= new Scanner (System.in);
System.out.println("digite sua 1° nota");
nota1 = entrada.nextFloat();
System.out.println("digite sua 2° nota");
nota2 = entrada.nextFloat();
System.out.println("digite sua 3° nota");
nota3 = entrada.nextFloat();
System.out.println("digite sua 4° nota");
nota4 = entrada.nextFloat();
//calculos e comparaçoes
System.out.print(nota1 + nota2 + nota3 + nota4 /4);
float resultado;
resultado = (nota1 + nota2 +nota3 + nota4 /4);
if(resultado>=7); System.out.println(" aprovado");
if(resultado<5); System.out.println(" reprovado");
}

}

Anônimo disse...

acho que falta cadastrar a variável (resultado)

Unknown disse...

O final está errado, você colocou 2 if.
O certo seria assim:

if (resultado >= 7) {
System.out.println("Aprovado");
{ else {
System.out.println("Reprovado");
}

Renato nogueira disse...

package media;
import java.text.DecimalFormat;
import java.util.Scanner;

/**
*
* @author rnt
*/
public class Media {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here

Scanner entrada = new Scanner (System.in);
// importei essa classe chamada "java.text.DecimalFormat" ela transforma meu resultado com numero de casas decimais que eu decidir
// neste exemplo quero que a media tenha somente duas casa decimais.
DecimalFormat dc = new DecimalFormat("0.00");
//minhas variaveis usei as que uso aqui na faculdade são tres notas.
float nota1;
float nota2;
float nota3;
//eu coloquei como variavel a media
float media;
// coloquei essa variavel para saber o resultado da soma das notas incialmente. claro isso é so para organização e minha maneira de pensar
float SomaNota;


//metodo recebendo os dados do usuario
System.out.println("Digite sua primeira nota ");
nota1 = entrada.nextFloat();
System.out.println("Digite sua segunda nota ");
nota2 = entrada.nextFloat();
System.out.println("Digite sua terceira nota ");
nota3 = entrada.nextFloat();
//metodo para somar as notas
SomaNota= nota1+nota2+nota3;
//metodo para saber a media, a media é o valor da soma do meu metodo acima, dividido pela quantidade de notas, neste exemplo 3 notas;
media= SomaNota/3;


//metodo de comparação
if(media<5){
System.out.println("a sua media é:"+dc.format(media)+" e deu merda, voce precisa estudar mais, até ano que vem");
}
if(media>=5 && media <7 ){
System.out.println("a sua media é:"+dc.format(media)+" e voce por pouco não passou, precisa estudar para a substitutiva");
}
if(media>=7 ){
System.out.println("a sua media é:"+dc.format(media)+" Parabéns! Pode colocar as séries em dias, você passou!");
}
}
}

Renato nogueira disse...

ola fiz um programa com base nos conhecimentos até aqui, de comparação de media com 3 notas, usando if, else, usando tratamento de nota digitada, fique a vontade para entender o código e fazer o seu tambem.

sou iniciante, e quebrei muita cabeça, mas é incrível quando copila e dá certo. sou noob como vocês, então vamos se ajudar.

segue o código.

package media;
import java.text.DecimalFormat;
import java.util.Scanner;

/**
*
* @author rnt
*/
public class Media {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here

Scanner entrada = new Scanner (System.in);
// importei essa classe chamada "java.text.DecimalFormat" ela transforma meu resultado com numero de casas decimais que eu decidir
// neste exemplo quero que a media tenha somente duas casa decimais.
DecimalFormat dc = new DecimalFormat("0.00");
//minhas variaveis usei as que uso aqui na faculdade são tres notas.
float nota1;
float nota2;
float nota3;
//eu coloquei como variavel a media
float media;
// coloquei essa variavel para saber o resultado da soma das notas incialmente. claro isso é so para organização e minha maneira de pensar
float SomaNota;


//metodo recebendo os dados do usuario

System.out.println("Digite sua primeira (0.0 - 10.0) ");
nota1 = entrada.nextFloat();

//metodo para validação das notas inseridas
if((nota1<=10.0)&&(nota1 >=0.0)){
System.out.println("Digite sua segunda nota (0.0 - 10.0) ");
nota2 = entrada.nextFloat();
if((nota2<=10.0)&&(nota2 >=0.0)){
System.out.println("Digite sua terceira nota (0.0 - 10.0) ");
nota3 = entrada.nextFloat();
if((nota3<=10.0)&&(nota3 >=0.0))
{
//metodo para somar as notas
SomaNota= nota1+nota2+nota3;
//metodo para saber a media, a media é o valor da soma do meu metodo acima, dividido pela quantidade de notas, neste exemplo 3 notas;
media= SomaNota/3;
//metodo de comparação
if(media<5){
System.out.println("a sua media é:"+dc.format(media)+" e deu merda, voce precisa estudar mais, até ano que vem.");
}
if(media>=5 && media <7 ){
System.out.println("a sua media é:"+dc.format(media)+" e voce por pouco não passou, precisa estudar para a substitutiva");
}
if(media>=7 ){
System.out.println("a sua media é:"+dc.format(media)+" Parabéns! Pode colocar as séries em dias, você passou!");
}

}else{System.out.println("nota inválida, encerrando a aplicação");}


}else{
System.out.println("nota inválida, encerrando a aplicação");
}
} else{System.out.println("nota inválida, encerrando a aplicação");
}
}
}







Anônimo disse...

double n1,n2,media;
Scanner entrada=new Scanner(System.in);
System.out.println("Qual a primeira nota: \n");
n1=entrada.nextFloat();
System.out.println("Qual a segunda nota: \n");
n2=entrada.nextFloat();
media=((n1+n2)/2);
System.out.printf("A media foi: %.3f e a n1:%.2f e n2: %.2f\n", media,n1,n2 );
if (media>=7){
System.out.print("Aprovado\n");
}else if((media>=5) && (media<=6.9)){
System.out.println("Prova final");
}
else{
System.out.print("Reprovado\n");
}

}

}

Anônimo disse...

Poderá fazer encadeamento encadeamento if...
if ( nt >= 7 ){
System.out.println ("Você foi aprovado!");
}
else {
if ( nt >= 5 ){
System.out.println ("Você poderá fazer uma recuperação... Boa sorte!");
} else {
System.out.println ("Você foi reprovado!");
}
}

Anônimo disse...

O meu ficou assim!

/*Crie um programa que receba uma nota e informe se vc passou direto se esta de recuperação ou reprovado
Regras: 7 ou mais: passou direto, entre 5 e 7 tem direito a recuperação e abaixo de 5 esta reprovado
*/
import java.util.Scanner;
public class Exemplo14 {
public static void main(String[] args){
Scanner entrada = new Scanner(System.in);
float nota1, nota2, nota3, media;
String nome;

System.out.println("Informe seu nome: ");
nome = entrada.nextLine();
System.out.printf("Informe a sua Primeira nota %s : ",nome);
nota1 = entrada.nextFloat();
System.out.printf("Informe a sua Segunda nota %s : ", nome);
nota2 = entrada.nextFloat();
System.out.printf("Informe agora a sua Terceira nota %s: ", nome);
nota3 = entrada.nextFloat();

media = (nota1 + nota2 + nota3)/3;


if (media >= 7){
System.out.printf("Você esta Aprovado %s , com Media: %.2f\n", nome, media);
}
if (media >= 5 && media < 7){ //uso do && para verificar o intervalo entre os valores.
System.out.printf("Você consegue %s , você tem direito a recuperação com a media: %.2f\n", nome, media);
}
if (media < 5){
System.out.printf("Poxa não foi desta vez %s , você esta Reprovado com a Media: %.2f\n", nome, media);
}
}
}

Anônimo disse...

Galera, por favor será que tem como alguém passar isso para Android Studio.
Agradeço.

Anônimo disse...

package vcb.foco;


import java.util.Scanner;

public class ex006 {
public static void main(String[] args) {
Scanner leia = new Scanner(System.in);
float media ;
System.out.println("digite a media do aluno :");
media = leia.nextFloat();
if (media>7){
System.out.println("passou direto");
}
else if (media>=5&&media<=7){
System.out.println("tem direito de fazer uma prova de recuperação");
}
else {
System.out.println(" reprovado direto.");
}

}
}

Anônimo disse...


package aula01;
//@by kau
import java.util.Scanner;
public class Aula01 {


public static void main(String[] args) {
AlunoBimestral aluno1 = new AlunoBimestral(); //Instancia de importação de class
Scanner teclado = new Scanner(System.in); //Instancia de Importação

System.err.println("|Calculo de média|");
System.out.println("");
System.out.print("Informe seu nome: ");
aluno1.nome = teclado.nextLine();//Instancia para usar o Scanner + variavel
System.out.print( aluno1.nome + ", Informe sua turma: 1°");
aluno1.turma = teclado.nextLine();
System.out.print("RA: ");
aluno1.ra = teclado.nextInt();

System.out.println("___________________________________");
System.out.print("Digite sua nota do 1°Bimestre: ");
float numero1 = teclado.nextFloat();

System.out.println("___________________________________");
System.out.print("Digite sua nota do 2°Bimestre: ");
float numero2 = teclado.nextFloat();

System.out.println("____________________________________");
System.out.print("Digite a nota do 3°Bimestre: ");
float numero3 = teclado.nextFloat();

System.out.println("______________________________________");
System.out.print("Digite a nota do 4°Bimestre: ");
float numero4 = teclado.nextFloat();

float média = (numero1 + numero2 + numero3 + numero4) /2; //criação de variavel media do tipo float
System.out.println("Sua média é: ");
if(média >= 6){
System.out.print("Você está aprovado");
}
else{
System.out.print("Você está reprovado");



OBS: usei uma class par simplificar o código, e não foi necessário criar a variável média porque quando foi calcular automaticamente você criou ela.
}

Sabrina silva disse...

public class Main
{
public static void main(String[] args) {

boolean orgulho = false;

if (orgulho = true) {

System.out.println("Você não recebeu Sabedoria");
}


if (orgulho = false){

System.out.println("Você recebeu Sabedoria");

}
}

Wybson Santana disse...

import java.util.Scanner;

public class Entrada {

public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
String nome;
String sobrenome;
float nota;

System.out.print("Digite o nome do aluno: ");
nome = teclado.nextLine();

System.out.print("Digite o sobrenome do aluno: ");
sobrenome = teclado.nextLine();

System.out.print("Digite a nota do aluno: ");
nota = teclado.nextFloat();

if (nota < 0 || nota > 10) {
System.out.print("Ops! A nota que você informou parece não ser válida. Verifique e tente novamente!");
} else if (nota >= 7) {
System.out.printf("A nota do aluno %s %s foi %.2f e ele está aprovado.", nome, sobrenome, nota);
} else if (nota >= 5 && nota < 7) {
System.out.printf("A nota do aluno %s %s foi %.2f e ele está de recuperação.", nome, sobrenome, nota);
} else {
System.out.printf("A nota do aluno %s %s foi %.2f e ele está reprovado.", nome, sobrenome, nota);
}
}
}

Cristovam Ramos Neto disse...

int nota1, nota2, media;
Scanner s = new Scanner(System.in);
System.out.println("Digite a primeira nota: ");
nota1 = s.nextInt();
System.out.println("Digite a segunda nota: ");
nota2 = s.nextInt();
media = (nota1 + nota2) / 2;
System.out.println("Sua média é: " + media);
if (media < 5){
System.out.println("Você está reprovado! ");
}if (media < 7){
System.out.println("Você está de recuperação! ");
}else{
System.out.println("Você está aprovado! ");


}

}

}

Unknown disse...

import java.util.Scanner;
public class Aprovado {


public static void main(String[] args) {
float nota;
Scanner entrada = new Scanner(System.in);

System.out.println("Digite sua nota: ");
nota = entrada.nextFloat();

if(nota>7) {
System.out.println("Você está aprovado");


}else if (nota >= 5 && nota <=7) {
System.out.println("Voce tem direito a fazer uma prova de recuperação");
}else if(nota < 5){
System.out.println("Você está reprovado");
}
}
}

Contribuir com o Java Progressivo

Que tal apoiar e fazer crescer o ensino da programação no Brasil ?

Ajudar nosso país a crescer e se desenvolver cada vez mais, tecnologicamente?

Clica abaixo pra saber mais!

Apoiar o Projeto Progressivo


Tutoriais de Java