2017-12-09 3 views
-2

なぜコード2が動作し、コード1がエラーを表示しているのですか?Java Scannerのこのメソッドはコード2では動作し、コード1では動作しないのはなぜですか?

import java.util.*; 
class alpha /*This is not the main class btw */ 
{ 
    Scanner x=new Scanner(System.in); 
    int k;flag=0; 
    String s1=new String(); 
    s1=x.nextLine(); /* This Line Produces error */ 
} 


は、私が最初のコード1 approach..itがエラーを表示し、その後、私はmethod..itでそれを追加してみましたが

コード私はその理由を教えてsomehow..please 1を働い使用しましたコード2:

import java.util.*; 
class alpha /*This is not the main class btw */ 
{ 
    Scanner x=new Scanner(System.in); 
    int k;flag=0; 
    String s1=new String(); 
    void input() 
    { 
    s1=x.nextLine(); /* Voila this works */ 
    } 
} 
+3

最初の例ではメソッドを宣言していません。メソッドの外部では、文( 'int k'や' String s1 = "foo" 'など)何でも)。 2番目の例では、 's1 ='ステートメントをメソッド内に置きます。これはすべて非常に基本的なJavaです。まだお持ちでない場合は、Javaチュートリアルや書籍を読むことをお勧めします。全身的なやり方ではなく、「オンザフライで」基礎を習得しようとすると、声明のような重要なことがたくさんあります。 – yshavit

+4

クラスレベルで宣言と初期化子しか使用できません。エラーを生成するのは代入文です。コードはメソッドに入るべきです –

答えて

1

あなたの最初の例では、我々は、任意の方法外のステートメントを置くことができないので、我々は唯一の

ような方法の外に宣言と初期化子を置くことができます実行されません。

int x = 5;

Hello h = new Hello;

あなたの最初の例では、あなたがいずれかの方法外s1=x.nextLine();のような文を置くべきではありませんエラー

をshoingされる理由です。

関連する問題