我有一個填充了檢查結果的二維數組。數組包含名稱。用戶輸入一些名稱,prog會檢查名稱是否與存儲在數組中的其他名稱相同。如果它們匹配,則打印出包含該名稱的整行。如果沒有這樣的名字,它應該打印出一個「錯誤」。我需要使用一個布爾變量來檢查是否有東西被發現。但問題是我不能想出如何檢查在循環中發現的東西。當我使用這一行時:使用帶循環的布爾變量
boolean=namesmatch=namechk.equalsIgnoreCase(math[x][1]);
只有當用戶輸入名字,因爲x = 0,它纔會正確。如果用戶輸入任何其他名稱,則會打印出所需的行,然後出現「錯誤」。我該如何擺脫這個「錯誤」?
public class Math extends StudentCharts {
public Math(){
math = new String [3][3];
math[0][0]="math"; math[0][1]="Bill Gates"; math[0][2]="49";
math[1][0]=math[0][0]; math[1][1]="John Doe"; math[1][2]="12";
math[2][0]=math[0][0]; math[2][1]="Paul Allen"; math[2][2]="31"; }
public void prnt (String namechk){
int x=0;
int y=0;
boolean namesmatch=namechk.equalsIgnoreCase(math[x][1]);
for (x=0; x<3; x++) {
if (namechk.equalsIgnoreCase(math[x][1])) {
for (y=0; y<3; y++) {
System.out.print(math[x][y]+" ");
} } }
if (!namesmatch) {
System.out.println("error");
} } }
這是主類
public class Studentsarrays {
public static void main(String[] args) {
Math chr1 = new Math();
Scanner user = new Scanner(System.in);
System.out.println("Enter full name, please");
String namecheck = user.nextLine();
chr1.prnt(namecheck); } }
你的大括號是怎麼回事? Java不是口齒不清的。 – Carcigenicate
'boolean = namesmatch = namechk'是一個錯字還是你實際上在你的源代碼中有什麼?另外,*「錯誤」*沒有多大幫助。 *你究竟得到了什麼錯誤? – domsson
你知道你可以做'if(namesmatch){...',對吧? –