java问题。关于for循环里的判断输出问题~

/*
录入班级学员的人数,然后循环给学员的名字赋值。
之后,输入一个名字,查找该学员是否在此班级中。
*/
import java.util.Scanner;
public class lianxi{
public static void main(String[] args){
Scanner s = new Scanner(System.in);
System.out.print("学员人数:");
int q = s.nextInt();
String[] a = new String[q];
System.out.println("请录入学员姓名:");
for(int i=0;i<q;i++){
a[i] = s.next();
}
System.out.print("请输入要查找的学员姓名:");
String b = s.next();
for(int i=0;i<q;i++){
b.equals(a[i]);
if(b.equals(a[i])){
System.out.print("该学员在此班是第"+(i+1)+"为学生!");
break;
}else{
System.out.print("没有找到!");
}
}
}
}

如图:我输入除第一个姓名外所有姓名都会输出没有找到。求解答。希望不要改变我的做题思路。
原因我知道,就是不知道怎么解~最有一句没有找到应该放在哪里?

import java.util.Scanner;
public class lianxi{
public static void main(String[] args){
int j=0;//加入标记符 
Scanner s = new Scanner(System.in);
System.out.print("学员人数:");
int q = s.nextInt();
String[] a = new String[q];
System.out.println("请录入学员姓名:");
for(int i=0;i<q;i++){
a[i] = s.next();
}
System.out.print("请输入要查找的学员姓名:");
String b = s.next();
for(int i=0;i<q;i++){
b.equals(a[i]);
if(b.equals(a[i])){
j=i+1;//找到修改标记为i+1
    break;
   }  
}
if(j!=0){//判断标记是否为0,为0没找到该学生
System.out.print("该学员在此班是第"+j+"为学生!");

else 
{
System.out.print("没有找到!");
}
}
}

追问

没有找到后面还需要加一个break;不然会多次输出。
谢谢了。老师教过,自己没吸收~

温馨提示:答案为网友推荐,仅供参考
相似回答