ajuda com vetores em Java - iniciante

27/02/2020

11

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();

		}
	}

}

Responder

Posts

29/02/2020

Renato Paula

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();

		}
	}

}

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar