一段java小程序的问题
现在有两个数组,数组A里面装的是些部门信息(部门编号、部门名称),数组B里面有员工信息(部门编号、员工名称)
我要打印出来的效果是:产品部--------
张三:LLLL
李四:LLLL
实施部--------
核武:LLLL
销售部--------
三五:LLLL
互补:LLLL
市场部--------
李婷:LLLL
人力资源部--------
小虎:LLLL
public static void main(String[] args) {
String []deptInfo=new String []{"1","产品部","2","实施部","3","销售部","4","市场部","5","人力资源部"};
String []employeeInfo=new String[]{"3","三五","3","互补","4","李婷","1","张三","1","李四","2","核武","5","小虎"};
String a=null;
for (int i = 0; i < deptInfo.length; i++) {
if(i%2==0){
a=deptInfo[i];
System.out.println(deptInfo[i+1]+"--------");
}
for (int j = 0; j < employeeInfo.length; j++) {
if(j%2==0){
if(a.equals(employeeInfo[j])){
System.out.println(employeeInfo[j+1]+":LLLL");
}
}
}
}
}
不知道我代码哪里有问题,为什么打印员工信息的时候,都重复执行两遍。打印后效果如下产品部--------
张三:LLLL
李四:LLLL
张三:LLLL
李四:LLLL
实施部--------
核武:LLLL
核武:LLLL
销售部--------
三五:LLLL
互补:LLLL
三五:LLLL
互补:LLLL
市场部--------
李婷:LLLL
李婷:LLLL
人力资源部--------
小虎:LLLL
小虎:LLLL
[解决办法]
for example
String []deptInfo=new String []{"1","产品部","2","实施部","3","销售部","4","市场部","5","人力资源部"};String []employeeInfo=new String[]{"3","三五","3","互补","4","李婷","1","张三","1","李四","2","核武","5","小虎"};String a=null;for (int i = 0; i < deptInfo.length; i+=2) { a=deptInfo[i]; System.out.println(deptInfo[i]+"--------"); for (int j = 0; j < employeeInfo.length-1; j+=2) { if(a.equals(employeeInfo[j])){ System.out.println(employeeInfo[j+1]+":LLLL"); } }}
[解决办法]
当下标为奇数时,a的值仍为上一次偶数的赋值,所以重复了。
如:当i=1时,a的值仍为0。
这是我改的
[code=Java][/code]String []deptInfo=new String []{"1","产品部","2","实施部","3","销售部","4","市场部","5","人力资源部"};
String []employeeInfo=new String[]{"3","三五","3","互补","4","李婷","1","张三","1","李四","2","核武","5","小虎"};
String a=null;
for (int i = 0; i < deptInfo.length; i++) {
if(i%2==0){
a=deptInfo[i];
System.out.println(deptInfo[i+1]+"--------");
}else
a=null;//当下标位置为部门名称时清空
for (int j = 0; j < employeeInfo.length; j++) {
if(j%2==0){
if(a!=null)//判断是否为空
if(a.equals(employeeInfo[j])){
System.out.println(employeeInfo[j+1]+":LLLL");
}
}
}//a=null; 这里清空也行!
}
}
[解决办法]
当下标为奇数时,a的值仍为上一次偶数的赋值,所以重复了。
如:当i=1时,a的值仍为0。
这是我改的 String []deptInfo=new String []{"1","产品部","2","实施部","3","销售部","4","市场部","5","人力资源部"}; String []employeeInfo=new String[]{"3","三五","3","互补","4","李婷","1","张三","1","李四","2","核武","5","小虎"}; String a=null; for (int i = 0; i < deptInfo.length; i++) { if(i%2==0){ a=deptInfo[i]; System.out.println(deptInfo[i+1]+"--------"); }else a=null;//当下标位置为部门名称时清空 for (int j = 0; j < employeeInfo.length; j++) { if(j%2==0){ if(a!=null)//判断是否为空 if(a.equals(employeeInfo[j])){ System.out.println(employeeInfo[j+1]+":LLLL"); } } }//a=null; 这里清空也行! } }
[解决办法]
支持一下很不错支持一下很不错