Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何取消java中的for循环?_Java_Arrays_Loops - Fatal编程技术网

如何取消java中的for循环?

如何取消java中的for循环?,java,arrays,loops,Java,Arrays,Loops,我的程序的目标是在用循环提示用户输入每个员工的姓名、ssn和薪水后,将默认的100个员工对象(但应使用较少的对象)存储到一个数组中。然后我需要输出数组的内容。当用户要求输入名称时输入0,我试图结束循环,但到目前为止,我的程序似乎无休止地循环 驾驶员等级: import java.util.Scanner; public class EmployeeDemo { public static void main(String[] args) { // TODO Auto-

我的程序的目标是在用循环提示用户输入每个员工的姓名、ssn和薪水后,将默认的100个员工对象(但应使用较少的对象)存储到一个数组中。然后我需要输出数组的内容。当用户要求输入名称时输入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();
        }
    }

}

您应该使用
equals()
来比较字符串,而不是
=
,如下所示:

if (nameTest == "0")
为了实现你想要的,你可以使用以下方法:

System.out.println("Enter Name: ");
nameTest = kb.next();
if (nameTest.equals("0")) break;      // <- add this line here.
System.out.println(“输入名称:”);
nameTest=kb.next();
如果(nameTest.equals(“0”)中断;// 请按以下说明进行

=
将仅测试参考值是否相等

.equals()
测试值(如果相等)


因此,将
if(nameTest==“0”)
替换为
if(nameTest.equals(“0”)

首先,您将检查
int
字符串的对比,这将不起作用。如果(nameTest.equals(“0”)
,则应将其更改为
。然后您可以使用
break
来中断循环。无需设置
i=100

此代码段中存在一些问题:

if(nameTest=="0"){
    i=100;
}
当判断字符串的值是否相等时,应始终使用“等于”方法,而不是“==”。因此,编写如下代码:

if (nameTest.equals("0")) {
    i = 100;
}

使用
equals
比较字符串。如果希望用户随意停止,请不要使用for循环。使用while循环或do-while循环。
if (nameTest.equals("0")) {
    i = 100;
}