通过索引“Java”彼此相等的两个数组
如果用户在运行此程序后键入自己的姓名,则程序应输出
Hello Sully you are Manager !
但实际情况是,程序将打印Sully是管理者,并将继续将Sully与数组中的其他值进行比较。我只是在用java学习数组
public class Aconstructors {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in) ;
String user ;
String [] empName , empPos ;
empName = new String [2] ;
empName [0] = "Sully" ;
empName [1] = "John" ;
empPos = new String [2] ;
empPos [0] = "Manager" ;
empPos [1] = "Employ" ;
System.out.println("Enter Your Name to know Your Position : ");
user = scan.nextLine() ;
for (int i = 0 ; i <empName.length;i++ ) {
//check if user input is equals
if (empName[i].equals(user)) {
// indexes are equals
empName.equals(empPos.length );
System.out.printf("Hello %s you are %s !!\n",empName[i],empPos[i]);
// if user input is not equal
}
else if (!empName[i].equals(user)) {
System.out.println("unknowing user !! ");
}
}
}
}
John的输出:
Enter Your Name to know Your Position :
John
unknowing user !! << as you see here java checking the values
Hello John you are the Employ !! << java found John
Sully的输出:
Enter Your Name to know Your Position :
Sully
Hello Sully you are Manager !! << found Sully
unknowing user !! << didnt stop
# 1 楼答案
在循环之前声明一个布尔变量
unknown=true;
,以检查列表中是否存在该名称。如果在列表中找到该名称,请更改unknown=false;
循环完成后,如果变量未更改,即名称不在列表中,则打印消息“未知”
# 2 楼答案
尝试改进您的for-loop-like
您只需要将您的用户输入与empName数组进行比较,并打印该员工的位置,这非常简单,因为您的索引对于这两者都是相同的,如果找到匹配项,则使用break来中断循环