有这样一个问题。我循环打印信息,知道输入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怎么办?????哪里写错了呢???
如下。。
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怎么办?????哪里写错了呢???
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);
}
}
}
}
将这个语句提到
while(true)
的前面就可以了!你每次循环都创建了一个新的 CustomerService对象,所以每个对象里面都只有一个Customer对象放到前面就是在对你的这一个CustomerService对象就行添加操作!
for (int i = 0; i < customer.length; i++)
{
if (customer[i] == null)
{
point = i;
}
}
customer[point] = cm;
break;
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){}
}
}我同时启动好几个客户端,想让客户端通过服无端互相接收到信息,怎么处理,