2009-04-30 8 views
0

次のコードでforループの後にnextLine()が機能しない理由を知っていますか? nextLine()をスキップし、直接ifに進みます。forループの後にnextLine()が動作しない

int[] a = new int[3] 

for(int i=0; i<3;i++) 
{ 
    a[i] = nextInt(); 
} 

String b = nextLine(); 

if(b == "go") 
{ 
    ....... 
} 
else 
{ 
    ..... 
} 
+0

私はそれが起こる理由はないと思う、詳細が必要です。あなたが実行しているコードがあなたが私たちに見せているソースと同じコードであることを確かめますか? –

答えて

0

働いていないとはどういう意味ですか? nextLine()メソッドが呼び出されていないと言うことになります。貼り付けたコードに従って、nextLine()メソッドを100%呼び出します。

0

nextLineを含むステートメントは、例外がスローされない限り、常にそこで実行する必要があります。 nextLineの実装は表示されません。実行されていないと確信していますか?いくつかSystem.err.println("blah")が散在するかもしれません。

Btw:文字列比較はほぼ確実にb.equals("go")です。 bnullの場合は、明示的にチェックするか、式"go".equals(b)を書き込んでください。

3

私はあなたがしていることは、ユーザーが整数を入力してからEnterを押すことを求めていると推測しています。整数を解析するときには、整数を解析して削除します。しかし、もちろん、彼らが押した改行はまだ流れている。そして、nextLine()を要求すると、ストリームにすでに行があるため(整数のために押された改行で終わる行)、すぐに戻ります。そして実際には、整数が入力された後にnextLine()が追加の行を待つことを実際に期待していたかもしれませんが、それは起こっていることではありません。これは正しいですか?

関連する問題