有这样一个问题。我循环打印信息,知道输入N的时候,程序结束,打印所有信息,但是,我这个程序只能打印最后输入的信息,前面的信息打不出来;。。这是为什么呢?
如下。。
import java.util.Scanner;public class CustomerApp { /**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub

while(true){
Scanner input=new Scanner(System.in);
System.out.println("name:");
String name1=input.next();

System.out.println("email:");
String email=input.next();

System.out.println("age:");
int age1=input.nextInt();


Customer cm1=new Customer(name1,age1,email);
CustomerService cs=new CustomerService();
cs.addCustomer(cm1);
System.out.println("是否要继续输入?y/n");
String s=input.next();
if(s.equals("n")){
cs.showCustomer();
break;
}

}

}}
——————————————————————————————————
——————————————————————————————————
public class Customer {
public String name;
public String email;
public int age;
public Customer(String name,int age,String email){
this.name=name;
this.email=email;
this.age=age;
}}
——————————————————————————————————
——————————————————————————————————
public class CustomerService {

public Customer[] customer=new Customer[100];


public void addCustomer(Customer cm){
//最终向数据库存储数据
int point=0;
for(int i=0;i<customer.length;i++){
if(customer[i]==null){
point=i;
}
customer[point]=cm;
break;
}
}

public void showCustomer(){
//获取数据库中的数据并显示
for(int i=0;i<customer.length;i++){
Customer c=customer[i];
if(c!=null){
System.out.println(c.name+"   "+c.age+"  "+c.email);
}
}
}
}
——————————————————————
——————————————————————————比如我输入,3,3,3它提示(Y/N)我选择Y在输入
5,5,5
提示(Y/N)
选择N程序输出  5 5 5我想让它输出
3 3 3   
5 5 5怎么办?????哪里写错了呢???

解决方案 »

  1.   

    看注释,修改了CustomerApp和CustomerService类,原因希望楼主思考一下,不解释:
    CustomerApp代码:
    import java.util.Scanner;public class CustomerApp
    {
    public static void main(String[] args)
    {
    //在这里创建CustomerService的实例
    CustomerService cs = new CustomerService();
    while (true)
    {
    Scanner input = new Scanner(System.in);
    System.out.println("name:");
    String name1 = input.next();

    System.out.println("email:");
    String email = input.next();

    System.out.println("age:");
    int age1 = input.nextInt();

    Customer cm1 = new Customer(name1, age1, email);
    cs.addCustomer(cm1);
    System.out.println("是否要继续输入?y/n");
    String s = input.next();
    if (s.equals("n"))
    {
    cs.showCustomer();
    break;
    }
    }
    }
    }
    CustomerService代码:
    public class CustomerService
    {
    public Customer[] customer = new Customer[100];

    public void addCustomer(Customer cm)
    {
    int point = 0;
    for (int i = 0; i < customer.length; i++)
    {
    if (customer[i] == null)
    {
    point = i;
    //在这里break
    break;
    }
    }
    //在这里赋值
    customer[point] = cm;
    }

    public void showCustomer()
    {
    for (int i = 0; i < customer.length; i++)
    {
    Customer c = customer[i];
    if (c != null)
    {
    System.out.println(c.name + " " + c.age + " " + c.email);
    }
    }
    }

    }
      

  2.   

    CustomerService cs=new CustomerService();
    将这个语句提到 
    while(true)
    的前面就可以了!你每次循环都创建了一个新的 CustomerService对象,所以每个对象里面都只有一个Customer对象放到前面就是在对你的这一个CustomerService对象就行添加操作!
      

  3.   

    int point = 0;//这里每次你都是加入customer[0],你没有point++
            for (int i = 0; i < customer.length; i++)
            {
                if (customer[i] == null)
                {
                    point = i;
                                              }
            }
          
            customer[point] = cm;
     break;
      

  4.   

    Java code服务端
    import java.net.*;
    import java.io.*;
    import java.util.*;
    class fanserver
    {
        static List<fanclient> client = new ArrayList<fanclient>();
        public static void main(String[] args)throws Exception 
        {
            Socket s;
            ServerSocket ss = new ServerSocket(4445);
            while(true){
                s = ss.accept();
                System.out.println("haha...");
                server ser = new server(s);
                new Thread(ser).start();
                client.add(ser);
            }
        /*    BufferedReader br = 
                new BufferedReader(new InputStreamReader(System.in));
            BufferedWriter bwout = 
                new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
            BufferedReader brin = 
                new BufferedReader(new InputStreamReader(s.getInputStream()));
            String str = null;
            while((str=brin.readLine())!=null){
            //    System.out.println(str);
                bwout.write(str);
                bwout.flush();
                bwout.newLine();
            }
            */
            
        //    s.shutdownOutput();
            
            
        }
    }
    class server implements Runnable
    {
        private Socket s;
        server(Socket s){
            this.s = s;
        }
        public void run(){
            try{
                
                BufferedWriter bwout = 
                    new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
                BufferedReader brin = 
                    new BufferedReader(new InputStreamReader(s.getInputStream()));
                
                String str = null;
                while((str=brin.readLine())!=null){
                    System.out.println(str);
                    bwout.write(str);
                    bwout.newLine();
                    
                    bwout.flush();
                }
            //    s.shutdownOutput();
                
            }
            catch(Exception e){}
        }
    }
    Java code客户端import java.net.*;
    import java.io.*;
    class fanclient 
    {        public static void main(String[] args)throws Exception
        {
            Socket s = new Socket("192.168.30.129",4445);
            BufferedReader br = 
                new BufferedReader(new InputStreamReader(System.in));
            BufferedWriter bwout = 
                new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
            BufferedReader brin = 
                new BufferedReader(new InputStreamReader(s.getInputStream()));
            new Thread(new client(brin)).start();
            String str = null;
            while((str=br.readLine())!=null){
                
                bwout.write(str);
                
                bwout.newLine();
                bwout.flush();
                
            }
            
        //    s.shutdownOutput();
        
        //    String line = brin.readLine();
        //    System.out.println(line);
        
        
        }
    }
    class client implements Runnable
    {
        private BufferedReader brin;
        client(BufferedReader brin)
        {
            this.brin = brin;
        }
        public void run(){
            String line = null;
            try{
                while((line=brin.readLine())!=null){
                    System.out.println(line);    
                }
            }catch(Exception e){}
        }
    }我同时启动好几个客户端,想让客户端通过服无端互相接收到信息,怎么处理,