我认为代码的开头是正确的。方法containsNumber()是我的弱点。在检查代码时,我得到7个不同的彩票号码(我应该这是正确的),但我的检查程序说我在返回真/假值时失败。
import java.util.ArrayList;
import java.util.Random;
public final class LotteryNumbers {
private ArrayList<Integer> numbers;
private Random random = new Random();
public LotteryNumbers() {
// We'll format a list for the numbers
this.numbers = new ArrayList<Integer>();
// Draw numbers as LotteryNumbers is created
this.drawNumbers();
}
public ArrayList<Integer> numbers() {
return this.numbers;
}
public void drawNumbers() {
while (numbers.size() <7){
int number = random.nextInt(39)+1;
if (containsNumber(number)==true){
this.numbers.add(number);
}}
// Write the number drawing here using the method containsNumber()
}
这是我的主要问题,我在检查代码时收到失败:“方法containsNumber()返回false,尽管抽取的数字在抽取的数字列表中:15”
public boolean containsNumber(int numberi) {
if (!this.numbers.contains(numberi)){
return true;
}
return false;
}
}
我的主要计划:
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
LotteryNumbers lotteryNumbers = new LotteryNumbers();
ArrayList<Integer> numbers = lotteryNumbers.numbers();
System.out.println("Lottery numbers:");
for (int number : numbers) {
System.out.print(number + " ");
}
System.out.println("");
}
}
答案 0 :(得分:2)
当你要求它工作时它起作用。但是你想要:
public boolean containsNumber(int numberi) {
return this.numbers.contains(numberi);
}
第一部分代码也必须更正:
public void drawNumbers() {
while (numbers.size() <7){
int number = random.nextInt(39)+1;
if (!containsNumber(number)){
this.numbers.add(number);
}
}
....