-1

我觉得我真的很接近用这个类完成我想要完成的事情——但是 getNumbers 方法继续出错——建议我需要 .class 我说 if numbers[i].isValid(i)——如果我改变它我得到“int不能被取消引用”。我的部分任务是表明我可以使用多种方法来完成某事,而且我知道我肯定对此感到不安。任何有关该方法的建议将不胜感激。它试图填充一个数组并验证每个数字都在 0 到 59 之间,并且每个数字都不是重复数字。

import java.util.*;

 public class Luck //edited
{
public int numbers[];

public Luck()
{
    numbers = new int[4];
}

public void greeting()
{
    System.out.println("Please enter 5 numbers, each > 0 and < 59.");
}

public void getNumbers()
{
Scanner reader = new Scanner(System.in);
    int count = 0;
    int[] numbers = new int[4];

    while(count<5)
{
    System.out.println("Please enter a number > 0  and < 59");
    for(int i=0; i<5; i++)
    {
        numbers[i] = reader.nextInt();
        if((isValid(numbers[i]) || isNotRepeat(numbers[]))
        {
            count++;
        System.out.println("Number " + count + " is " + numbers[j]);
        }//end second if
        else TryAnother();
        //else TryAgain();
     }//end for
}//end while
}//end method


     public boolean isNotRepeat(int numbers[]) //edited
 {
     for(int i=0; i< 5; i++)
     {
         for(int j=0; j< 5; j++)
         {
         if (i == j)
         return false;

         else return true;
        }//end for
      }//end for
    }


     public boolean isValid (int number)
     {
         number = newNumber;
         if (newNumber < 0 || newNumber > 59)

         return false;
     }



    public void showNumbers(int numbers[])
    {
        int count = 0;
        //int numbers[] = new int[4];
        //int i;

         for(int i=0; i < 5; i++)
         {
         System.out.println("Number " + count + 1 + " is " + numbers[0]);
        }
    }

    public void goodLuck()
    {
        System.out.println("Good luck!");
    }

 }//end class
4

2 回答 2

1

numbers是一个int[](数组int)。在您的代码中的几个地方,您尝试调用 的元素的方法numbers,例如这里:

if(numbers[i].isValid(i))

if (numbers[j].isNotRepeat(numbers[]))

那是行不通的,因为你不能调用诸如isValid和之类isNotRepeat的方法int。此外,上面引用的第二行甚至不是有效的 Java 语法(当您尝试传递numbers[]给方法时是什么意思?)。

你的意思可能是这样的:

if(isValid(numbers[i]))

(方法在哪里isNotRepeat?)。

于 2012-11-22T14:20:04.733 回答
0

您的代码中有两个明显的错误:

1 您的构造函数名称应与您的类名称相同。

public Luck() 

应该

public Lucky()

2 你不能在int 原语上调用isValid()isNotRepeat

如果您只想检查一个数字是否有效,只需执行

        if(isValid(i)) or if(isNotReapeat(array))

编辑:

改变

if((isValid(numbers[i]) || isNotRepeat(numbers[]))

 if((isValid(numbers[i]) || isNotRepeat(numbers)) // you dont need the brackets, you only need to pass the reference variable
于 2012-11-22T14:23:20.793 回答