Array

9 respostas
A

alguem sabe se essa array tah certa???
obs e para adicionar valores.

void adiciona(paciente p)
{
    
    for(int i=0; i<arrayp.length; i++)
    {
        if(arrayp[i]==null)
        {
            arrayp[i]=p;
            i=arrayp.length +1;
        }
    }
 
    }

9 Respostas

P

Vc tem q declara a array antes:

int arrayp[] = new int[10];

E tbm, quando um variavel, ou no caso array, eh declara int, vc verifica c o seu valor eh igual a 0, e naum igual a null.

A

eu sei ja declarei mas esse codigo vai adicionar apenas numa poosição ou vai incher uma array todas com as mesma coisa??

P

Essa codigo vai dar erro, pois quando a linha:

i=arrayp.length +1;é executada ele soma mais um ao maximo de item que a array possui, assim ocorre um ArrayIndexOutOfBound, mas se essa linha não existisse, ele preencheria toda a array com o mesmo valor.

A

ok eu ñ quero q ele preencha toda array com o mesmo valor mas sim apenas um campo dela.isso quer diser q ela esta preenchendo apenas um valor.
mas e para q eu pudesse mostrar os valores estão dentro desta array o q eu faria???pois o metodo q eu estou usando esta entrando num laço infinito.

o que eu estou usando e esse

public class relatorio {
    
    /** Creates a new instance of relatorio */
    public void relatori(paciente P){                  
       
         for (int i=0; i < P.arrayp.length; i++) {
          if (P.arrayp[i]!=null){
         
          if(P.arrayp[i].tipo.equals("pessoa_juridica")){    
System.out.println(P.arrayp[i].nome);
System.out.println(P.arrayp[i].idade);
System.out.println(P.arrayp[i].identidade);
System.out.println(P.arrayp[i].endereco);
System.out.println(P.arrayp[i].pai);
System.out.println(P.arrayp[i].mae);
System.out.println(P.arrayp[i].tipo);
System.out.println("");
       
          }
       
    
        if(P.arrayp[i].tipo.equals("pessoa_fisica")){
        
System.out.println(P.arrayp[i].nome);
System.out.println(P.arrayp[i].idade);
System.out.println(P.arrayp[i].identidade);
System.out.println(P.arrayp[i].endereco);
System.out.println(P.arrayp[i].pai);
System.out.println(P.arrayp[i].mae);
System.out.println(P.arrayp[i].tipo);
System.out.println("");
        }
        }
      }
     }      

    
   }
P

Entendi, então ao inves de você usar “i=arrayp.length +1;”, coloca o break, assim não ocorre nenhum erro. Eu não entendi o por que do P nesse codigo:

P.arrayp.length, já tento sem ele?

A

P e para instanciar o pacinente que e a classe onde estão as arrays.
e o break funciona mas como eu faria, pois eu quero mostrar todos os valores.
A coloquei o break e deu pau nesta parte do programa

if(P.arrayp[i].tipo.equals(“pessoa_juridica”)){

P

com essas informações eu não estou vendo o problema, existe algum erro, alguma coisa q apareca??

P

com essas informações eu não estou vendo o problema, existe algum erro, alguma coisa q apareca, q indique o erro??

A

eu axo q axei o erro mas ñ estou conseguindo arrrumar.
assim o

eu vo te mostrar .

import java.lang.reflect.Array;
/*
 * relatorio.java
 *
 * Created on 3 de Julho de 2007, 19:10
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

/**
 *
 * @author Deh
 */
public class relatorio {
    
    /** Creates a new instance of relatorio */
    public void relatori(paciente P){                  
       
         for (int i=0; i < P.arrayp.length; i++) {
          if (P.arrayp[i]!=null){
         
          if(P.arrayp[i].tipo.equals("pessoa_juridica")){    
System.out.println(P.arrayp[i].nome);
System.out.println(P.arrayp[i].idade);
System.out.println(P.arrayp[i].identidade);
System.out.println(P.arrayp[i].endereco);
System.out.println(P.arrayp[i].pai);
System.out.println(P.arrayp[i].mae);
System.out.println(P.arrayp[i].tipo);
System.out.println("");
       
          }
       
    
        if(P.arrayp[i].tipo.equals("pessoa_fisica")){
        
System.out.println(P.arrayp[i].nome);
System.out.println(P.arrayp[i].idade);
System.out.println(P.arrayp[i].identidade);
System.out.println(P.arrayp[i].endereco);
System.out.println(P.arrayp[i].pai);
System.out.println(P.arrayp[i].mae);
System.out.println(P.arrayp[i].tipo);
System.out.println("");
        }
          break;
        }
      }
     }      

    
   }
if(opcao==1){
...
    int tip;
    System.out.println("informe o nome do paciente");
    p.nome=console.readLine("");
    System.out.println("informe a idade do paciente");
    p.idade=console.readInt("");
    System.out.println("informe o rg do paciente");
    p.identidade=console.readInt("");
    System.out.println("informe o endereco do paciente");
    p.endereco=console.readLine("");
    System.out.println("Indorme o nome do pae do paciente");
    p.pai=console.readLine("");
    System.out.println("Informe o nome da mae do paciente");
    p.mae=console.readLine("");
    System.out.println(" se passoa e juridica(1)");
    System.out.println(" se a pessoa e fisica(2)");
    tip=console.readInt("");
    if(tip == 1){
        pj.tipo = "pessoa_juridica";
        
    }
    else{
        pf.tipo = "pessoa_fisica";
       //o problema!!!!
...
public class pessoas_juridica extends paciente implements int_paciente{
    
    /** Creates a new instance of pessoas_juridica */
    
    
    public void Info_tipo() {
        this.tipo = "pessoa_juridica";
    }
    
}
/*ele ñ esta passando o valor para o tipo esse e o erro eu acho mas como eu faria para passar?*/
Criado 14 de julho de 2007
Ultima resposta 14 de jul. de 2007
Respostas 9
Participantes 2