Issue
I know that the loop is looping through every element in the array! Hence, it also prints out 'John is not found' before printing out his information! How do I just print out his information without 'John is not found'?
This is my code:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Number of members: ");
int number = scanner.nextInt();
Member m[] = new Member[number];
scanner.nextLine();
for (int i = 0; i < number; i++) {
System.out.print("Name & number:");
String[] input = scanner.nextLine().split(" ", 2);
m[i] = new Member(input[0], input[1]);
}
System.out.println("Information Saved.\n");
boolean condition = true;
while (condition) {
System.out.print("Search a name or type exit: ");
String search = scanner.nextLine();
for (int x = 0; x < m.length; x++) {
if (search.equals(m[x].getName())) {
System.out.print(search + "'s number is " + m[x].getTel() + "\n");
break;
} else if (search.equals("exit")) {
condition = false;
m[x].showAllMembers();
} else if (!search.equals(m[x].getName())){
System.out.print(search + "is not found.\n");
}
}
}
}
Member class:
class Member {
private String name, tel;
public Member(String name, String tel ) { // Constructor
this.name = name;
this.tel = tel;
}
// Getter
public String getName() {
return name;
}
// Setter
public void setName(String name) {
this.name = name;
}
// Getter
public String getTel() {
return tel;
}
// Setter
public void setTel(String tel) {
this.tel = tel;
}
public void showAllMembers() {
System.out.print("Name:" + name + ", Number:" + tel + "\n");
}
Results:

Solution
I assume you can do the following:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Number of members: ");
int number = scanner.nextInt();
Member m[] = new Member[number];
scanner.nextLine();
for (int i = 0; i < number; i++) {
System.out.print("Name & number:");
String[] input = scanner.nextLine().split(" ", 2);
m[i] = new Member(input[0], input[1]);
}
System.out.println("Information Saved.\n");
boolean condition = true;
while (condition) {
System.out.print("Search a name or type exit: ");
String search = scanner.nextLine();
if (search.equals("exit")) {
condition = false;
// method showAllMembers() should not exists in Member class, it'll be really better to migrate it to the separate method, because one single Member object shouldn't know anything about ALL members
showAllMembers(m);
}
int memberNumber = -1;
for (int x = 0; x < m.length; x++) {
if (search.equals(m[x].getName())) {
memberNumber = x;
break;
}
}
if (memberNumber != -1) {
System.out.print(search + "'s number is " + m[memberNumber].getTel() + "\n");
} else {
System.out.print(search + "is not found.\n");
}
}
public static void showAllMembers(Member members[]) {
for (Member member : members) {
System.out.println("Member name: " + member.getName() + ", number: " + member.getTel());
}
}
}
Answered By - Begging
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.