搜索数组时遇到问题

时间:2020-09-11 06:14:12

标签: java

因此,我一切正常,直到需要搜索为止。我真的很陌生,所以我的代码可能很糟糕,对不起。无论如何,它是一个用户输入数组,用户应该能够在数组中搜索数字。我在第50行得到一个重复变量的错误(int i,得到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 个答案:

答案 0 :(得分:0)

您正在尝试在相同范围内声明一个具有相同名称(“ i”)的新变量。

在第50行重命名变量i。