Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我的else语句无效,但if语句无效。JAVA_Java - Fatal编程技术网

我的else语句无效,但if语句无效。JAVA

我的else语句无效,但if语句无效。JAVA,java,Java,我打算让用户输入10个名称,并将其设置为数组。 然后,我将再次让用户输入他们想要搜索的名称,然后显示搜索结果。 但是,当我搜索不在数组中的内容时,结果仍然显示它。我的代码有问题吗?希望有人能帮忙,谢谢 import java.util.Scanner; import java.util.*; public class Main { static List<String> name = new ArrayList<String>(); public static vo

我打算让用户输入10个名称,并将其设置为数组。 然后,我将再次让用户输入他们想要搜索的名称,然后显示搜索结果。 但是,当我搜索不在数组中的内容时,结果仍然显示它。我的代码有问题吗?希望有人能帮忙,谢谢

import java.util.Scanner;
import java.util.*;

public class Main 
{
static List<String> name = new ArrayList<String>();

public static void main (String[]args)
{   
    Scanner input=new Scanner(System.in);
    Scanner input2=new Scanner(System.in);

    int i;
    String sname;

    System.out.println("Please enter 10 student names.");
    for(i=1;i<11;i++){
    name.add(input.next());
    }

    System.out.println("Namelist is " + name);
    String[] namearray = name.toArray(new String[0]);
    System.out.println("Arraylist is "+ Arrays.toString(namearray));

    System.out.println("Please enter the names that you want to search.");
    sname=input2.nextLine();

    search(namearray, sname);
}

public static void search(String[]namearray,String sname)
{
    int i;
    boolean check;

    for(i = 0; i < namearray.length; i++){
          if(namearray[i].equals(sname))
             check=true;
          else
              check=false;
    }

    if(check=true){
        System.out.println("Found Result: "+sname);
    }
    else if (check=false){
        System.out.println("Not Found.");
    }
}
}

谢谢。

将check=true和check=false替换为check==true check==false。

您的代码有两个问题:

a。一旦看到名称等于,就需要中断for循环:

boolean check = false;
for(i = 0; i < namearray.length; i++){
      if(namearray[i].equals(sname)) {
         check=true;
         break;
      }
}//assuming you are doing it for study purpose or i would use name.contains(sname); rather than for loop.

=是赋值,不是比较。1不要在布尔值中使用==true,只需使用ifcheck,2不要麻烦检查倒数,只需使用else即可。@chrylis它可以工作!!谢谢!它给了我无效的赋值运算符错误…谢谢!它现在起作用了!
if(check){
    System.out.println("Found Result: "+sname);
} else{
    System.out.println("Not Found.");
}