检查数组是否包含整数并生成没有重复元素的整数数组

时间:2013-04-16 23:51:16

标签: java arrays

我如何才能使array.equals(guess)行显示出来,以及如何将加载值方法更改为不允许重复的数字?

import java.util.Arrays;
import java.util.Random;
import javax.swing.JOptionPane;

public class Assignment {

    private static int[ ] loadValues(){
        int[] groupOfValues = new int[5];
        Random randomized = new Random();

        for (int index = 0; index < 5; index++) {
          groupOfValues[index] = randomized.nextInt(39) + 1;
        }
        return groupOfValues;
    }
    private static void displayOutcome(int [ ] array, int guess){
          if(array.equals(guess)){
          JOptionPane.showMessageDialog(null, "Congrats, your guess of " + guess + " was one of these numbers:\n" 
                  + Arrays.toString(array));
          }
          else{
          JOptionPane.showMessageDialog(null, "Sorry, your guess of " + guess + " was not one of these numbers:\n" 
                  + Arrays.toString(array));
          }

    }

    public static void main(String[] args) {

          int guessedConvert;
          String guess;

          do{
          guess = JOptionPane.showInputDialog("Guess a number from 1-39");
          guessedConvert = Integer.parseInt(guess);     
          }while(guessedConvert < 1 || guessedConvert > 39);

          displayOutcome(loadValues(), guessedConvert);



    }
}

1 个答案:

答案 0 :(得分:3)

通过数组搜索需要循环:

boolean found = false;
for (int i = 0 ; !found && i != array.length ; i++) {
    found = (array[i] == guess);
}
if (found) {
    ...
}

要确定loadValues中是否有重复项,请在外部循环中添加类似的代码段

for (int index = 0; index < 5; index++) {
    boolean found = false;
    int next = randomized.nextInt(39) + 1;
    // Insert a loop that goes through the filled in portion
    ...
    if (found) {
        index--;
        continue;
    }
    groupOfValues[index] = next;
}