[RESOLVIDO] Verificação de disponibilidade de livros

olá pessoal, blz meu problema pode ser meio besta más está ai kk, necessito fazer uma verificação se o livro está disponivel ou não para retirada. tentei claro com if só que não obtive resultado.

segue o código:

package br.com.lucas;

import java.util.Scanner;

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author lucas
 */
public class Livro{
    
        public Livro(){
            
        int opmenu,op = 0; 
        int verificarLivros = 1;
        String nomePessoa;
        
         String[] nomes = new String[3];         
         
         Scanner leia = new Scanner(System.in);
         
         System.out.println("Biblioteca-Ágil\n");         
         System.out.println("1- Retirar livro\n" +
                            "2- Devolver livro\n" +
                            "3- Doar livro\n");
         
         System.out.println("Informe o número da opção: ");
          opmenu = leia.nextInt();
         
         if(opmenu == 1){         
             System.out.println("\nlivros para retirar:\n" +
             "1- Como fazer sentido e bater o martelo-Autor: Alexandro Aolchique - Ano: 2017\n" +
             "2- Código Limpo - Autor: Tio Bob - Ano: 2001\n" +
             "3- Basquete 101 - Autor: Hortência Marcari - Ano: 2010\n");
             System.out.println("Informe o número da opção do livro: ");
             op = leia.nextInt();
             
             if(op == 1){   

                 System.out.println("Informe o seu nome para retirada do livro: ");
                    nomePessoa = leia.next();
                    nomes[0] = nomePessoa;
                   
                    System.out.println("Número: 01\n"
                                    +"Ttitulo: Como fazer sentido e bater o martelo\n"+
                                     "Autor:  Alexandro Aolchique\n"+
                                     "Ano: 2017\n"+
                                     "status: Indisponível\n"+
                                     "Emprestado para: "+ nomes[0] +"\n");
                 System.out.println("livro retirado com sucesso!");           
                 System.out.println("------------------------------");                  
                }

                    System.out.println("\nlivros para retirar:\n" +
                        "1- Como fazer sentido e bater o martelo-Autor: Alexandro Aolchique - Ano: 2017\n" +
                        "2- Código Limpo - Autor: Tio Bob - Ano: 2001\n" +
                        "3- Basquete 101 - Autor: Hortência Marcari - Ano: 2010\n");
                        System.out.println("Informe o número da opção do livro: ");
                        op = leia.nextInt();
                
                        if(op == 2){                            
                          System.out.println("Informe o seu nome para retirada do livro: ");
                          nomePessoa = leia.next();
                          nomes[1] = nomePessoa;
                          System.out.println("Número: 02\n"
                                    +"Ttitulo: Código Limpo\n"+
                                     "Autor:  Tio Bob\n"+
                                     "Ano: 2001\n"+
                                     "status: Indisponível\n"+
                                     "Emprestado para: "+ nomes[1] +"\n");
                 System.out.println("livro retirado com sucesso!");           
                 System.out.println("------------------------------");                       
                  }
                       
                        System.out.println("\nlivros para retirar:\n" +
                        "1- Como fazer sentido e bater o martelo-Autor: Alexandro Aolchique - Ano: 2017\n" +
                        "2- Código Limpo - Autor: Tio Bob - Ano: 2001\n" +
                        "3- Basquete 101 - Autor: Hortência Marcari - Ano: 2010\n");
                        System.out.println("Informe o número da opção do livro: ");
                        op = leia.nextInt();
 
                        if(op == 3){
                          System.out.println("Informe o seu nome para retirada do livro: ");
                          nomePessoa = leia.next();
                          nomes[2] = nomePessoa;
                          System.out.println("Número: 03\n"
                                    +"Ttitulo: Basquete 101\n"+
                                     "Autor:  Hortência Marcari\n"+
                                     "Ano: 2010\n"+
                                     "status: Indisponível\n"+
                                     "Emprestado para: "+ nomes[2] +"\n");
                 System.out.println("livro retirado com sucesso!");           
                 System.out.println("------------------------------");    
                 
                  }
                        
                        
                          
 }else if(opmenu == 2){
             System.out.println("essa é a op 2");
  }else if(opmenu == 3){
             System.out.println("essa é a op 3");
  }else{
             System.out.println("Informe o número correto da opção!");
  }     
 }
}

Você pode criar um método booleano de verificação, que retorna a disponibilidade do livro; true para disponível, false para indisponível.

Peguei a variável verificarLivros em vez de ser int, criei-a como boolean. Lhe tirei de dentro do método public Livro(), e deixei ela apenas dentro da classe, ficando dessa forma:

public class Teste {
    
boolean verificarLivros;
    
        public Teste(){

Criei também o método booleano:

public boolean isAvailable(){
            
            return this.verificarLivros = true;
        
        }

Agora basta implementar no seu código a alteração do estado do livro, e chamar o método.
Não garanto que funcione, porque sou novo no ramo de Java/programação.
Mas foi de coração a tentativa :heart:

Não realizei testes, mas acho que esses seus if´s ficariam melhor se fosse um switch-case. Ficaria mais organizado e mais bem visto.

Fora que mesmo que o usuário escolha o livro 1 aparece novamente para ele digitar uma outra opção de livro, sendo que ele acabou de escolher qual livro quer retirar. Dê uma melhorada no código dentro dos seus if´s para que isso não ocorra.

1 curtida

@Lucas_Matos, falta implementar algumas coisas ai, como por exemplo, devolver e doar livro ainda você não implementou os métodos, mas de início ficaria mais ou menos assim:

public class Teste {

    boolean verificarLivros;

    public Teste() {

        int opmenu, op = 0;

        String nomePessoa;

        String[] nomes = new String[3];

        Scanner leia = new Scanner(System.in);

        System.out.println("Biblioteca-Ágil\n");
        System.out.println("1- Retirar livro\n"
                + "2- Devolver livro\n"
                + "3- Doar livro\n");

        System.out.println("Informe o número da opção: ");
        opmenu = leia.nextInt();

        switch (opmenu) {

            case 1:
                System.out.println("\nlivros para retirar:\n"
                        + "1- Como fazer sentido e bater o martelo-Autor: Alexandro Aolchique - Ano: 2017\n"
                        + "2- Código Limpo - Autor: Tio Bob - Ano: 2001\n"
                        + "3- Basquete 101 - Autor: Hortência Marcari - Ano: 2010\n");
                System.out.println("Informe o número da opção do livro: ");
                op = leia.nextInt();

                switch (op) {
                    case 1:

                        System.out.println("Informe o seu nome para retirada do livro: ");
                        nomePessoa = leia.next();
                        nomes[0] = nomePessoa;

                        System.out.println("Número: 01\n"
                                + "Ttitulo: Como fazer sentido e bater o martelo\n"
                                + "Autor:  Alexandro Aolchique\n"
                                + "Ano: 2017\n"
                                + "status: Indisponível\n"
                                + "Emprestado para: " + nomes[0] + "\n");
                        System.out.println("livro retirado com sucesso!");
                        System.out.println("------------------------------");

                    case 2:

                        System.out.println("Informe o seu nome para retirada do livro: ");
                        nomePessoa = leia.next();
                        nomes[1] = nomePessoa;
                        System.out.println("Número: 02\n"
                                + "Ttitulo: Código Limpo\n"
                                + "Autor:  Tio Bob\n"
                                + "Ano: 2001\n"
                                + "status: Indisponível\n"
                                + "Emprestado para: " + nomes[1] + "\n");
                        System.out.println("livro retirado com sucesso!");
                        System.out.println("------------------------------");
                

                    case 3:
                        System.out.println("Informe o seu nome para retirada do livro: ");
                        nomePessoa = leia.next();
                        nomes[2] = nomePessoa;
                        System.out.println("Número: 03\n"
                            + "Ttitulo: Basquete 101\n"
                            + "Autor:  Hortência Marcari\n"
                            + "Ano: 2010\n"
                            + "status: Indisponível\n"
                            + "Emprestado para: " + nomes[2] + "\n");
                        System.out.println("livro retirado com sucesso!");
                        System.out.println("------------------------------");

                }

        case 2:
             System.out.println("essa é a op 2");
        case 3:
             System.out.println("essa é a op 3");
        default:     
             System.out.println("Informe o número correto da opção!");
        }
    }

E nesse default você tem que fazer com que chame novamente o switch-case da operação, caso o usuário digite uma operação inválida. Creio que a partir daí, você já consiga avançar no seu código. :hugs::wink:

Vlw @smatt. Sim eu já tinha trocado Por switch o primeiro if, agora vou resolver esse casso do default.

1 curtida

Ai no que eu fiz, eu fiz um switch-case dentro do switch-case, pegou visão?

Sim,sim entendi

1 curtida