2013-10-22 38 views
1
import java.util.Scanner; 

public class CHP4Ex 
    { 
     Scanner scan = new Scanner(System.in); 
     public static void main(String[] args) 
     { 
      System.out.println("enter a n: "); 
      int n = scan.nextInt(); 
      int i=10; 
      while (i<n) 
      { 
       System.out.println(i); 
       i = i + 10; 
      } 
     } 
} 

爲什麼我會收到此錯誤?我基本上寫了一個while循環,打印所有可以被10整除的正數。例如,如果n爲100,則輸入10 ... 90。錯誤:非靜態變量掃描無法從Java中的靜態上下文中引用

+0

你是獲取錯誤,因爲無法從靜態上下文訪問非靜態變量。 – Ingo

回答

4

將Scanner類對象放入主函數中。基本上問題是你的代碼違反了靜態特性。你不能在靜態函數中使用非靜態成員,在你的情況下主要是靜態的。因此,它應該是:

import java.util.Scanner; 

public class CHP4Ex 
    { 

     public static void main(String[] args) 
     { 
      Scanner scan = new Scanner(System.in); 
      System.out.println("enter a n: "); 
      int n = scan.nextInt(); 
      int i=10; 
      while (i<n) 
      { 
       System.out.println(i); 
       i = i + 10; 
      } 
     } 
} 
+0

準確地說,或者讓掃描儀成爲「靜態」 –

0

你不能指在靜態情況下的非靜態變量,所以改變

Scanner scan = new Scanner(System.in);

private static Scanner scan = new Scanner(System.in);它應該工作

相關問題