如何取消java中的for循环?
我的程序的目标是在用循环提示用户输入每个员工的姓名、ssn和薪水后,将默认的100个员工对象(但应使用较少的对象)存储到一个数组中。然后我需要输出数组的内容。当用户要求输入名称时输入0,我试图结束循环,但到目前为止,我的程序似乎无休止地循环 驾驶员等级:如何取消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-
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;
}