我的if语句中的问题,以便在我的java程序中进行比较

时间:2015-06-08 20:42:48

标签: netbeans random bubble-sort

任何帮助请,所以我已经写了编程但我的for循环中的if语句不起作用。 prog需要生成6个随机的nos,然后应用我已经做过的冒泡排序。然后用户必须输入6个数字,这些数字必须与随机数进行比较,并且必须说明是否在随机数中找到了数字。这是代码。 if语句`public static void main(String [] args){         试试{

        int numbers[] = new int[6];  //random numbers will be stored in new array
        //2 loop will be created to avoid duplication of numbers 
        System.out.println("Array before Bubble sort");
        for (int i = 0; i < 6; i++) {
            numbers[i] = (int) (Math.random() * 40);
            if (i > 0) {
                for (int b = 0; b < i; b++) {  //
                    if (numbers[b] == numbers[i]) {
                        i--;  //decrement to continue the for loop if the integer has been repeated
                    }
                }
            }

            System.out.print(numbers[i] + ",");  //random numbers will be printed before using sorting bubble sort

        }
        //sort an array using bubble sort
        bubbleSort(numbers);
        System.out.println("    \nArray after bubble sort");
        for (int i = 0; i < 6; i++) {
            System.out.print(numbers[i] + ",");
        }
        BufferedReader input = new BufferedReader(new InputStreamReader(System.in));

        System.out.println("\ninput 6 number between 1 and 40");
        int inputNumber = Integer.parseInt(input.readLine());
        for (int b = 0; b < 6; b++) {
            System.out.println("number:");
            int outcome=Integer.parseInt(input.readLine());
            if(outcome==numbers){
                System.out.println("found in random numbers");
            }else{
                System.out.println("not found in random numbers");
            }
        }

    } catch (Exception e) {
        System.out.println("error");
    }

}

public static void bubbleSort(int[] numbers) {

    int n = numbers.length;
    int temp = 0;
    for (int i = 0; i < n; i++) {
        for (int j = 1; j < (n - i); j++) {
            if (numbers[j - 1] > numbers[j]) {  //swap the element
                temp = numbers[j - 1];
                numbers[j - 1] = numbers[j];
                numbers[j] = temp;

            }
        }
    }

}

}`

1 个答案:

答案 0 :(得分:0)

System.out.println("\ninput 6 number between 1 and 40");
        //Scanner is specifically designed for getting an input purpose and introduced in Java 5,so better use it
        Scanner s = new Scanner(System.in);

        //you need to have nested loop here
        //But the best way to search is use binary search,as you have already sorted the array
        while (s.hasNextInt()) {
            //one at a time from the input is put to outcome
            int outcome = s.nextInt();
            boolean found = false;

            for (int b = 0; b < 6; b++) {


                found = false;

                if (outcome == numbers[b]) {
                    found = true;
                    //remember to break the inner loop if a match is found
                    break;
                } else {

                    found = false;
                }

            }
            if (found == true) {
                System.out.println("found in random numbers");
            } else {
                System.out.println("not found in random numbers");
            }