ajuda com vetores em Java - iniciante

Orientação a Objetos

Java

Lógica de programação

27/02/2020

pessoal, estou aprendendo a programar e estou meio que travado essa manhã numa parte do código. Eu preciso alugar quartos de hotéis, mas uma vez aquele quarto em questão for escolhido, ele não poderá ser escolhido novamente.
Ex : Weslley Felix
email : blablabla!
quarto : 1

a pessoa abaixo não poderá escolher o quarto 1 novamente.

e eu to com dificuldade de solucionar essa etapa. Como eu poderia solucionar isso ? segue meu código abaixo :



package h;

import java.util.Scanner;

public class program {

	public static void main(String[] args) {

		Scanner scan = new Scanner(System.in);

		Estudante studant = new Estudante(null, null, null);

		
		
		String[] email = new String[10];
		System.out.println("How many rooms to be rented? ");
		int n = scan.nextInt();
		String[] rooms = new String[n];
		String[] name = new String[n];
		for (int a = 0; a < n; a++) {
			System.out.println("Type here " + (a + 1) + "ª" + " studant");
			name[a] = scan.next();
			studant.setName(name[a]);
		}
		for (int b = 0; b < n; b++) {
			System.out.println("Type here " + " e-mail: ");
			email[b] = scan.next();
			studant.setEmail(email[b]);
		}
		for (int c = 0; c < n; c++) {
			System.out.println("Type here " + " the room number");
			rooms[c] = scan.next();
			 if (rooms[c] == null){
				//System.out.println("Digite o " + " the room number");
				rooms[c] = scan.next();
				studant.setRoom(rooms[c]);
			}else if (rooms[c] != null) {
				//rooms[c] = scan.next();				
				System.out.println("Type here " + " the room number AGAIN");
				rooms[c] = scan.next();
				studant.setRoom(rooms[c]);
			}
			
		}
		// in order to print it
		System.out.println();
		System.out.println();
		System.out.println();
		int a = 0;
		for (int d = 0; d < n; d++) {
			System.out.println("Rent #" + d );
			System.out.println("NOME: " + name[d]);
			System.out.println("EMAIL: " + email[d]);
			System.out.println("QUARTO: " + rooms[d]);
			System.out.println();

		}
	}

}

Weslley Felix

Weslley Felix

Curtidas 0

Respostas

Renato Paula

Renato Paula

27/02/2020

Boa noite Wesley,

Crie um método estático na classe Program, para verificar se o número do quarto digitado pelo usuário está disponível:

package h;

import java.util.Scanner;

public class program {

public static boolean QuartoIndisponivel(String[] rooms, String numRoom)
  {
      boolean retorno = false;
      
        for (int i = 0; i < rooms.length ; i++) 
        {
            if(rooms[i].equals(numRoom)){
                retorno = true;
                break;
            }
        }
        
        return retorno;
    }
}



Insira o código a seguir para não deixar o código prosseguir enquanto não for digitado pelo usuário, um quarto que esteja disponível para locação.

obs.: Crie variáveis para armazenar os valores digitados pelo usuario;
String quartoEscolhido;


		for (int c = 0; c < n; c++) {
			System.out.println("Type here " + " the room number");

                         while(QuartoIndisponivel(rooms, quartoEscolhido))
                         {
                              System.out.println("Quarto Nº: " + quartoEscolhido+ " está ocupado. Por favor, escolha outro quarto.");
                               quartoEscolhido = scan.next();
                         }

			rooms[c] = quartoEscolhido;
			studant.setRoom(rooms[c]);
					
		}
		// in order to print it
		System.out.println();
		System.out.println();
		System.out.println();
		int a = 0;
		for (int d = 0; d < n; d++) {
			System.out.println("Rent #" + d );
			System.out.println("NOME: " + name[d]);
			System.out.println("EMAIL: " + email[d]);
			System.out.println("QUARTO: " + rooms[d]);
			System.out.println();

		}
	}

}

GOSTEI 0
POSTAR