2017-09-26 13 views
0

学校のプロジェクトに座って、私は本当に混乱しています。 私の最初のnextLine();両方のforループではスキップされます。私はなぜ、私はこの答えは基本的かもしれないが、私は本当にこれを把握することはできません理解するようではありません!最初のnextLine()がスキップされるのはなぜですか?

for (int i = 0; i < antal; i++) { 

     System.out.println("Name of the customer?"); 
     String name = sc.nextLine(); 
     Kunde.setName(name); 

     System.out.println("Adress of the customer?"); 
     String adresse = sc.nextLine(); 
     Kunde.setAdress(adresse); 

     System.out.println("Mail of the customer?"); 
     String mail = sc.nextLine(); 
     Kunde.setMail(mail); 

     System.out.println("Phone number of the customer?"); 
     int tlf = sc.nextInt(); 
     Kunde.setTlf(tlf); 

     System.out.println("Postal code of the customer?"); 
     int postalcode = sc.nextInt(); 
     Kunde.setPostalCode(postalcode); 

     int x = ran.nextInt(100000); 
     Kunde.setOrderNumber(x); 

    } 

    for (int i = 0; i < antal; i++) { 
     System.out.println("Any specific orderdetails revolving order " + Kunde.getName(i) 
     + " If not, press enter"); 
     String details = sc.nextLine(); 
     order.add(details); 

    } 
+0

「スキップする」とはどういう意味ですか?あなたの2番目のforループで、 "特定の注文詳細..."を印刷し、 'Kunde.getName(i)'を呼び出すと、その値は設定されていませんか? 'Kunde'のコードをインクルードするためにあなたの質問を編集する必要があるかもしれません。なぜなら、あなたが一つの値を設定するのは奇妙に思えるかもしれませんが、それではインデックス(' i')で 'get'することです。 'sc.nextLine()'コードはうまく見えるので、 'Kunde'からどのように値を取得しているのかは分かります。 – DaveyDaveDave

+0

「顧客の名前」と「顧客の住所」は、nextLine()メソッドからプロンプトが表示されることなく、同時に印刷されます。 –

+0

これは正しいとは言えません - スキャナの設定方法あなたの投稿を編集することはできますか?あなたは「顧客のメール?」ブロックに期待どおりに機能しますか?あなたのスキャナはどこから読んでいますか?それは標準入力かファイルなのですか? 'String name = sc.nextLine()'の直後の行に 'System.out.println(" Name is: "+ name)'を追加するとどうなりますか? – DaveyDaveDave

答えて

-1

Scanner.nextIntメソッドは入力の最後の改行文字を消費しません。 これはおそらく、2番目のループの最初のnextLineがスキップされる理由です。 おそらく最初のものの前に同様のcasがあるかもしれませんか?

+0

"顧客の名前"と "顧客の住所"が同時に印刷されるので、nextLine();は空の文字列とみなします。 –

+0

これは本当に質問に答えるものではありません。ループの反復の間に発生し、 OPは 'nextLine()'メソッドが呼び出された*最初の時間を尋ねているので、これは問題ではありません。 – DaveyDaveDave

関連する問題