java - java中如何取消for循环?

标签 java arrays loops

我的程序的目标是在循环提示用户输入每个员工的姓名、ssn 和工资后,将默认的 100 个 Employee 对象(但应该更少)存储到一个数组中。然后我需要输出数组的内容。当用户在要求输入名称时输入 0 时,我试图结束循环,但到目前为止我的程序似乎无休止地循环。

驱动程序类别:

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() 来比较字符串,而不是 ==,如以下行所示:

if (nameTest == "0")

为了实现您想要的目标,您可以使用以下内容:

System.out.println("Enter Name: ");
nameTest = kb.next();
if (nameTest.equals("0")) break;      // <- add this line here.

这样做的优点是只要求您输入 0 作为员工姓名,而不需要输入所有三个值。

关于java - java中如何取消for循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26770419/

相关文章:

java - 如何编写java程序,使其输出以下行: (String)

java - 确定哪些用户的 session 已失效

java - 什么是VAN以及如何使用JAVA通过VAN传输文件?

javascript - 将对象数组中的元素附加到内部对象数组

java - 如果String是一个对象,但与Array(也是一个对象)不同,为什么我们可以直接打印出它的值?

java - 后递增运算符在 for 循环中不递增

c - C中使用数组的for循环

java - 使用 commons 或 Javascript 比较两个文件

Java - 如何在for循环中修改数组并在for循环退出后记住它?

list - 应用窗口函数来获取递归列表,我该怎么办?