Возникли проблемы с поиском массива

#java

#java

Вопрос:

Итак, у меня все работает нормально вплоть до того момента, когда мне нужно выполнить поиск. Я действительно новичок в этом, поэтому мой код, вероятно, ужасен, заранее прошу прощения. В любом случае, это пользовательский вводимый массив, и пользователь должен иметь возможность искать число в массиве. Я получаю сообщение об ошибке для повторяющейся переменной в строке 50 (int i, get 1).

 import java.util.Scanner;

class SearchingSorting {
    public static void main (String[] args) {
        Scanner input = new Scanner(System.in);
        
        System.out.println ("How many numbers would you like to input?");
        int num = input.nextInt();
        double[] array = new double[num];

        for (int i = 0; i < num; i  ) {
            System.out.println ("Input number "   (1   i)   ":");
            array[i] = input.nextDouble();
        }

        for (double temp1 : array){
            System.out.print (temp1   "t");
        }

        input.close();
        
        int pass;
        int i;
        int hold;
        
        for(pass = 1; pass < array.length; pass  )
            
        {
            
        for(i = 0; i < array.length - 1; i  )
            
        {
                if(array[i] > array[i 1])
                    
                {
                    hold = (int) array[i];
                    array[i] = array[i 1];
                    array[i 1] = hold;
                }
        }
    
        
        System.out.println("nSorted number is: ");
 
        for(i = 0; i < array.length; i  )
            System.out.print(" "   array[i]);
        
        }
        
        int i, get1;
        Scanner keyboard = new Scanner(System.in);
        int[] numbers = new int[10];

      for(i = 0; i < numbers.length; i  )
          
        {
        numbers[i] = i * 10;
        
        }
      
     System.out.print("Enter search number: ");
      get1 = keyboard.nextInt();
      SearchMethod(numbers, get1);
      
        }
    
    
    public static void SearchMethod(int[] num, int get2)
    {
        
        int i ;
        boolean j = false;
        for(i = 0; i < num.length; i  )
            
            {
            if(num[i] == get2)
                
            {
                j = true;
                break;
            }
    }
        if(j == true)
                 System.out.println(get2   " is found at num["   i   "]");
        else
               System.out.println(get2   " is not found in an array");
    }
}
  

Комментарии:

1. Зачем вам искать значение целочисленного типа в массиве двойного типа? Измените double[] array = new double[num]; на int[] array = new int[num]; .

2. Значения, которые пользователь / мой профессор вводит, не будут целыми числами

3. вы пытаетесь снова инициализировать i в строке 50 , в то время как исходный i все еще существует, и его область действия не закончена.

4. Да, спасибо. Я действительно новичок в этом, это похоже на второй проект. Я смотрел на это часами и понятия не имею, как это исправить.

5. Не могли бы вы как-нибудь отметить строку 50?

Ответ №1:

Вы пытаетесь объявить новую переменную с тем же именем («i») в той же области.

Переименуйте свою переменную i в строке 50.