Arrays 此代码中的while有什么问题?

Arrays 此代码中的while有什么问题?,arrays,Arrays,我需要找到数组中元素的出现次数。我知道if可以解决这个问题。但是使用而 import java.util.*; public class Exercise3{ public static void main(String[] args) { Scanner sc= new Scanner(System.in); int[] array = {1,1,1,2,3,4}; System.out.println("The array is " + A

我需要找到数组中元素的出现次数。我知道
if
可以解决这个问题。但是使用

import java.util.*;
public class Exercise3{
    public static void main(String[] args)
{
    Scanner sc= new Scanner(System.in);
    int[] array = {1,1,1,2,3,4};
    System.out.println("The array is " + Arrays.toString(array));
    System.out.print("Please enter search element: ");
    int searchElement = sc.nextInt();
    System.out.println(searchElement + " appears " + getNumber(array, searchElement)+ " times"); 
}
    
    public static int getNumber(int[] array, int searchElement)
{
        int count =0;
        for (int i =0; i < array.length; i++){
            while(array[i] == searchElement) count ++;
        }
        return count;
}
}
import java.util.*;
公开课练习3{
公共静态void main(字符串[]args)
{
扫描仪sc=新的扫描仪(System.in);
int[]数组={1,1,1,2,3,4};
System.out.println(“数组是”+Arrays.toString(数组));
System.out.print(“请输入搜索元素:”);
int searchElement=sc.nextInt();
System.out.println(searchElement+“出现”+getNumber(数组,searchElement)+“次数”);
}
公共静态int getNumber(int[]数组,int searchElement)
{
整数计数=0;
for(int i=0;i
如果您正在测试的数字(数组[i])与搜索的数字(searchElement)相等,则在不更改“i”的情况下继续while循环,因此while循环将不确定地继续

for循环只在while循环完成后更改“i”,但如果array[i]==searchElement,则不会发生这种情况


希望这是有意义的^ ^

是时候学习如何调试了。在这种情况下,这将对您有很大帮助。您是否尝试运行上述代码?由于内部while循环的前提条件没有改变,因此当
array[i]==searchElement
时,while循环将不会退出。while将永远保持循环,只要其测试保持为true。而(true){System.out.println(“永远!”;}永远不会停止,永远不会。当我输入一个不是数组元素的整数时,它仍然不会停止