-1

このクラスで達成したいことを本当に達成できるように感じますが、getNumbersメソッドは引き続きエラーになります。numbers[i] .isValid(i)の場合は.classが必要であり、変更すると、「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

numbersint[](の配列int)です。コード内のいくつかの場所で、の要素でメソッドを呼び出そうとしていますnumbers。たとえば、次のようになります。

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

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

isValidなどisNotRepeatのメソッドを呼び出すことができないため、これは機能しませんint。また、上で引用した2行目は、有効なJava構文でもありません(メソッドに渡そうとするとどういう意味numbers[]ですか?)。

あなたはおそらくこのようなことを意味しました:

if(isValid(numbers[i]))

(方法はどこisNotRepeatですか?)。

于 2012-11-22T14:20:04.733 に答える
0

コードには2つの目に見えるエラーがあります。

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 に答える