我的程序的目标是在提示用户输入每个员工的姓名,ssn和带有循环的工资后,将缺省的100个Employee对象(但应该用更少的工作)存储到数组中。然后,我需要输出数组的内容。我试图结束循环,当用户输入一个0时询问名称,但到目前为止我的程序似乎无休止地循环。如何取消java中的for循环?
Driver类:
import java.util.Scanner;
public class EmployeeDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner kb = new Scanner(System.in);
Employee employees[]= new Employee[100];
String nameTest="";
for(int i=0;i<100;i++){
Employee e = new Employee();
System.out.println("Enter Employee name, Ssn, and salary when prompted");
System.out.println("When finished type in 0's for each prompt");
System.out.println("Enter Name: ");
nameTest=kb.next();
e.setName(nameTest);
System.out.println("Enter Ssn: ");
e.setSsn(kb.next());
System.out.println("Enter Salary: ");
e.setSalary(kb.nextDouble());
if(nameTest=="0"){
i=100;
}
else
employees[i]=e;
}
for(int x=0;x<100;x++){
employees[x].toString();
}
}
}
方法:
public class Employee extends Person {
String ssn;
double salary;
public String getSsn() {
return ssn;
}
public void setSsn(String ssn) {
this.ssn = ssn;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
public Employee() {
super();
// TODO Auto-generated constructor stub
}
public Employee(String initialName,String initialSsn,double initialSalary) {
super(initialName);
ssn=initialSsn;
salary=initialSalary;
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "Name: "+getName()+" Ssn: "+getSsn()+" Salary: "+getSalary();
}
}
使用'equals'来比较字符串。 – 2014-11-06 01:49:23
如果您希望用户随意停止,请勿使用for循环。使用while循环或do-while循环。 – 2014-11-06 01:49:55