如果有人能幫助理解我在這個邏輯中做錯了什麼,我將不勝感激。我有一個提示用戶輸入名字的函數,然後運行一個for循環來查看是否有數組匹配。我能夠搜索並找到記錄,我的問題是,只要包含「else語句」,「if語句」就會停止工作。我感謝你的幫助。使用for循環搜索數組中的字符串。我做對了嗎?
代碼:
public static void SearchByName(){
Scanner input = new Scanner(System.in);
String answer;
String name;
System.out.println("");
System.out.println("\nEnter Name: ");
name = input.next();
for(int i = 0; i < counter; ++i){
if(records[i].str1.equals(name)){
System.out.println("MATCHES FOUND: " + i);
break;
}
else
{
System.out.println("NO MATCHES FOUND");
break;
}
}
//PROMPT USER FOR MAIN MENU
System.out.println("");
System.out.println("\nPress \"m\" for SEARCH MAIN MENU");
input = new Scanner(System.in);
answer = input.next();
if(answer.equals("m")){
doMainMenu();
}
}//METHOD
您需要遍歷所有數組以查看是否有一個元素匹配。你爲什麼在你身上打破你的循環?如果第一個元素不是您搜索的元素,您將打破您的for循環,不搜索其他元素。 –
你是否應該輸出你找到的匹配,或者你找到的匹配數量? – Jason
如果第一個元素不匹配,你在做的錯誤是在「else」中的循環中突然出現;所以你永遠無法比較第二個元素。 –