2017-09-21 7 views
-2

do-whileループの中で宣言したので、Javaが配列を見つけることができないので苦労していますか?しかし、do-whileループの外側に宣言すると、エラーが発生します。手伝って頂けますか?Javaは私の配列を見つけることができません

public static void main(String[] args) { 
    Scanner in=new Scanner(System.in); 
    //Input number of grades. 
    System.out.print("Enter No. of Grades from 5-10: "); 
    int grades=0; 

    do{ 
     grades=in.nextInt(); 
     int a[]=new int[grades]; 
     for(int i=0; i<grades; i++){ 
      //Inputing the grades 
      System.out.print("Grades Values: "); 
      int temp=0; 
      //checking whether the no. grades are less than 5 or more than 10 
      if(grades>11 || grades<5){ 
      System.out.println("INVALID!!"); 
      System.out.println("Enter Valid Number of Grades: "); 
      } 
      do{ 
       temp=in.nextInt(); 
       //checking whether the user's input of grades' values is between 0 to 100 
       if(temp<0 || temp>=101){ 
        System.out.println("Invalid Grade!"); 
        System.out.println("Enter Valid Grade: "); 
       } 
      }while(temp<0 || temp>=101); 
      a[i]=temp; 

     } 
    }while(grades>11 || grades<5); 

    //getting Highest grade 
    int highest=a[0]; 
    for(int i=1; i<a.length;i++){ 
     if(a[i]>highest){ 
      highest=a[i]; 
     } 
    } 
    System.out.println(highest); 


} 
+0

「do-while」の外で宣言すると、「エラー」はありますか? – Mischa

+4

"do-whileループの内側に宣言しているので、それはそれですか?" - ** yes ** –

+0

@MischaBehrendそれはJavaが返すと言った:1 –

答えて

1

私は、whileループ内でそれを宣言したので、それですか?

はい。

do { 
    int[] a; 
} 
... 

// a is not visible here, because it is declared within the do-block. 

read more about scopingです。

しかし、私はDO-whileループの外にそれを宣言するとき、それはあなたがそれを行う方法にそれが依存エラー

を持っています。これはうまくいくはずです:

int[] a; 
do { 
    grades = in.nextInt(); 
    a = new int[grades]; 
    ... 
} 
+0

ありがとうございました –

+0

@BrendanDelosAngelesこの回答が役に立ちましたら、それを受け入れることを検討してください。これは、stackoverflowがどのように動作するかhttps://stackoverflow.com/help/someone-answers – amicoderozer

関連する問題