import java.util.*;
public class zuoye1 { /**计算工人工资
* 作者:景红飞
* 时间:2008-7-28
*/
public static void main(String[] args) {
double peoplecount[];
String s;
int i,renshu;
gz people=new gz();
Scanner input=new Scanner(System.in);
System.out.println("请输入要存储工人工资的人数:");
renshu=input.nextInt();
peoplecount=new double[renshu];
for(i=0;i<renshu;i++){
peoplecount[i]=people.gongzi(peoplecount);
System.out.println("还要继续吗?不想输入了请输入n,继续的话那就输入y:");
s=input.next();
if(s.equalsIgnoreCase("n")){
break;
}
if(s.equalsIgnoreCase("y")){
continue;
}
}
for(int j=0;j<=i;j++){
System.out.println(people.name[j]+"的总工资是: "+peoplecount[j]);
}
}}
class gz{ int i=0,l;
zuoye1 p=new zuoye1();
String[] name;
double gongzidx,kaohe,jixiao,zgz;
Scanner input=new Scanner(System.in);
public double gongzi(double[] peoplecount){
l=peoplecount.length;
name=new String[l];
System.out.println("请输入工人姓名:");
name[i++]=input.next();
System.out.println("请输入工人工资底薪:");
gongzidx=input.nextDouble();
System.out.println("请输入工人考核工资:");
kaohe=input.nextDouble();
System.out.println("请输入工人绩效:");
jixiao=input.nextDouble();
zgz=(gongzidx+kaohe)*jixiao;
return zgz;
}
}问题:在class gz这个类里的数组name 为什么不能在方法gongzi()里面定义,一在方法gongzi外面定义就只能输出数组的最后一个元素,之前都数不出来,但在方法外面定义就好了 可以输出全部的元素;不知道是怎么回事,望各位大虾帮帮!(初学者,很可怜;)帮帮帮...................
public class zuoye1 { /**计算工人工资
* 作者:景红飞
* 时间:2008-7-28
*/
public static void main(String[] args) {
double peoplecount[];
String s;
int i,renshu;
gz people=new gz();
Scanner input=new Scanner(System.in);
System.out.println("请输入要存储工人工资的人数:");
renshu=input.nextInt();
peoplecount=new double[renshu];
for(i=0;i<renshu;i++){
peoplecount[i]=people.gongzi(peoplecount);
System.out.println("还要继续吗?不想输入了请输入n,继续的话那就输入y:");
s=input.next();
if(s.equalsIgnoreCase("n")){
break;
}
if(s.equalsIgnoreCase("y")){
continue;
}
}
for(int j=0;j<=i;j++){
System.out.println(people.name[j]+"的总工资是: "+peoplecount[j]);
}
}}
class gz{ int i=0,l;
zuoye1 p=new zuoye1();
String[] name;
double gongzidx,kaohe,jixiao,zgz;
Scanner input=new Scanner(System.in);
public double gongzi(double[] peoplecount){
l=peoplecount.length;
name=new String[l];
System.out.println("请输入工人姓名:");
name[i++]=input.next();
System.out.println("请输入工人工资底薪:");
gongzidx=input.nextDouble();
System.out.println("请输入工人考核工资:");
kaohe=input.nextDouble();
System.out.println("请输入工人绩效:");
jixiao=input.nextDouble();
zgz=(gongzidx+kaohe)*jixiao;
return zgz;
}
}问题:在class gz这个类里的数组name 为什么不能在方法gongzi()里面定义,一在方法gongzi外面定义就只能输出数组的最后一个元素,之前都数不出来,但在方法外面定义就好了 可以输出全部的元素;不知道是怎么回事,望各位大虾帮帮!(初学者,很可怜;)帮帮帮...................
* 计算工人工资 作者:景红飞 时间:2008-7-28
*/ public static void main(String[] args) {
double peoplecount[];
String s;
int i, renshu;
gz people = new gz();
Scanner input = new Scanner(System.in);
System.out.println("请输入要存储工人工资的人数:");
renshu = input.nextInt();
peoplecount = new double[renshu];
for (i = 0; i < renshu; i++) {
peoplecount[i] = people.gongzi(peoplecount);
System.out.println("还要继续吗?不想输入了请输入n,继续的话那就输入y:");
s = input.next();
if (s.equalsIgnoreCase("n")) {
break;
}
if (s.equalsIgnoreCase("y")) {
continue;
} }
for (int j = 0; j <= i; j++) {
System.out.println(people.name[j] + "的总工资是: " + peoplecount[j]);
}
}}class gz {
int i = 0, l;
zuoye1 p = new zuoye1();
String[] name = new String[10]; //这里定义好了一个数组,则程序正常
double gongzidx, kaohe, jixiao, zgz;
Scanner input = new Scanner(System.in); public double gongzi(double[] peoplecount) {
/*l=peoplecount.length;
name=new String[l]; */
/**
* 如果在这里定义的话, 则表示每次进入这个方法都要重新定义一遍数组,
* 所以你上次写在数组的东西,不能被保存,因为这个数组的引用指向了另外一块区域。
*/
System.out.println("请输入工人姓名:");
name[i++] = input.next();
System.out.println("请输入工人工资底薪:");
gongzidx = input.nextDouble();
System.out.println("请输入工人考核工资:");
kaohe = input.nextDouble();
System.out.println("请输入工人绩效:");
jixiao = input.nextDouble();
zgz = (gongzidx + kaohe) * jixiao;
return zgz;
}
}