[RESOLVIDO]Java - retornando "null" em array de string

1 resposta
javaarray
B
Boa tarde, galera, eu não consigo entender por que no final, quando retomar/ver um compromisso, ele diz "null"  
  Alguém poderia me ajudar?
  Obrigado


    Scanner keyboard = new Scanner(System.in);
    String permis[][] = new String[31][24]; 
    byte optionC;
    boolean sair= false;
           
    while(!sair){
        System.out.println("Aperte 1 para marcar compromisso");
        System.out.println("Aperte 2 para ver compromisso.");
        System.out.println("Aperte 0 para sair");
        
        optionC = keyboard.nextByte();
        if(optionC==1){ 
            int dia= 0;
            boolean diavalido = false;
            while(!diavalido){           
                System.out.println("Qual é o dia?");
                day = keyboard.nextInt();                                                            

                if(day>0 && day<=31){ 
                    diavalido= true;     
                }else{
                    System.out.println("Dia invalido, tente de novo");  
                }                                                                                                                 
       }
            boolean horavalida= false;
            int tempo= 0; 
            while(!horavalida){
                System.out.println("Pode me falar a hora do seu compromisso?");
                hora = keyboard.nextInt();

                if(time>0 && time <24){
                    horavalida = true;
                }else{
                    System.out.println("Hora inválida, tente de novo");
                }
            }
            day--; 
            System.out.println("Qual é o assunto do seu compromisso?");is 30.
            appoint[day][time] = keyboard.next();
            
        }else if(optionC==2){
            int dia=0;
            boolean diavalido = false;
            while(!diavalido){
                System.out.println("O dia ?");
                dia= keyboard.nextInt();
                if(day>0 && day<=31){
                    validDay= true;
                }else{
                    System.out.println("invalido. tente de novo");
                }
            }
            int tempo=0;
            boolean horavalida= false;
            while(!horavalida){
                System.out.println("A hora?");
                time = keyboard.nextInt();
                if(time>0 && time<25){
                    horavalida= true;
                }else{
                    System.out.println("invalido. tente de novo");
                }
            }
            System.out.println("O assunto do seu compromisso é  "
                    + permis[day][time]); // bem aqui, ele diz que permis[day][time] é null
        }else if(optionC==0){
            exit = true;
        }else{
            System.out.println("numero inválido");
        }
    }

1 Resposta

pmlm

Que confusão. Tens uma variavel diavalido mas depois de repente parece que se chama validDay. A mesma coisa para dia / day. O teu array chama-se permis ou appoint? É impossivel esse código funcionar.

Quando resolveres tudo isso, o teu problema está em decrementares 1 ao dia para gravares (uma vez que o array começa em 0) mas não fazes o mesmo para ler.

Criado 7 de dezembro de 2016
Ultima resposta 7 de dez. de 2016
Respostas 1
Participantes 2