0

コンパイルしようとすると、Eclipse は i と j が初期化されていないと表示します。私は何を間違っていますか?サークルの作り方について質問です。

public class Question2 
{

    public static void main(String[] args) {

        int x = 14;
        int y = 8;
        int radius = 5;


        DrawMeACircle(x,y,radius);

    }

    public static void DrawMeACircle(int x, int y, int radius)
    {

        int i, j;
        int gridsize = 99;
        int loop1;
        loop1 = ((x-i)*(x-i))+((y-j)*(y-j));
                // The problem is here (in the line above), it say i and j has not been initialized.

                int loop2 = loop1-radius*radius; 
                int c = radius-1; 

        for (i=0; i<gridsize; i++)
        {
            //System.out.print("#");
            for (j=0; j<gridsize; j++)
            {
                if(loop2 >=0 && loop2<= c )
                    {System.out.print("#");}
                else
                    {System.out.print(" ");}

            }
            System.out.print("\n"); 

        }
    }
}
4

6 に答える 6

3

ローカル変数は次の値で初期化する必要があります。

int i = 0;
int j = 0;

明示的に初期化されていない場合、クラス int 変数のみが 0 に設定されます。

于 2013-10-20T04:56:29.477 に答える
0

i と j のスコープはpublic static void main(String[] args)メソッドに限定されます。
クラス本体で宣言します。
すなわち。
public class Question2
{
static int i, j;
public static void main(String[] args)
{
i = j = 0;
}
......... your rest of the code
}

于 2013-10-20T05:00:27.870 に答える
0

変数を宣言するということは、値を格納するためにメモリ空間を予約することを意味しますが、変数を使用するときに IDE (この場合は eclipse) が変数に初期値を割り当てた行を見つけることができません。値(またはその変数を初期化した場所)であるため、あらゆる種類の操作で変数を使用する前に、その最初の値を設定する必要があります。

int x;

system.out.println(x+1); // this line would cause the exception you got because x has not              
                         // an initial value

x=0;
system.out.println(x+1); // now x has an "initial" value and there should be no exception              
于 2013-10-20T05:01:41.803 に答える