[英]How do I cancel a for loop in java?
我的程序的目標是在循環提示用戶輸入每個員工的姓名,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
作為員工姓名,而不必輸入所有三個值。
請按照以下步驟
==
將僅測試引用相等性。
.equals()
測試值是否相等。
因此,將if (nameTest == "0")
替換為if (nameTest.equals("0"))
首先,您要根據String
檢查一個int
,它將不起作用。 您應該將其更改為if (nameTest.equals("0") )
。 然后,您可以使用break
打破循環。 無需使i=100
。
此代碼段中存在一些問題:
if(nameTest=="0"){
i=100;
}
當判斷String的值相等時,應始終使用“等於”方法而不是“ ==”。 因此,編寫如下代碼:
if (nameTest.equals("0")) {
i = 100;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.