亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

For 循環組合線

For 循環組合線

慕森王 2021-12-30 16:45:17
我正在嘗試編寫一個 for 循環,允許用戶輸入五個姓名和年齡。我遇到的問題是它第一次運行正確,但是當它第二次運行時,名字和姓氏組合在一起,并且不允許兩個字符串條目。它將允許一個然后移動到年齡的整數條目。任何幫助表示贊賞。import java.util.Scanner;public class QueueImp extends people{    public static void main(String[] args) {        String userL;        String userF;        int userA;        int userchoice = 0;        Scanner scnr = new Scanner(System.in);        for(int i = 0; i<5; i++) {              System.out.print("Please enter last name: ");        userL = scnr.nextLine();        System.out.println("");        System.out.println("Please enter first name: ");        userF = scnr.nextLine();        System.out.println("Please enter age: ");        userA = scnr.nextInt();        System.out.println("");        pName(userL, userF, userA); }
查看完整描述

3 回答

?
慕桂英3389331

TA貢獻2036條經驗 獲得超8個贊

請使用nextinsted的的nextLine

System.out.print("Please enter last name: ");
userL = scnr.next();

next()只能讀取輸入直到空格。它無法讀取由空格分隔的兩個單詞。此外,next()在讀取輸入后將光標置于同一行。

@Edit: nextLine()讀取包含單詞之間空格的輸入(即,它讀取到行尾 \n)。讀取輸入后,nextLine()將光標定位在下一行。

要閱讀整行,您可以使用nextLine().

如果你想使用相同的比請使用這樣來消耗換行符 Integer.parseInt

userA = Integer.parseInt(scnr.nextInt());


查看完整回答
反對 回復 2021-12-30
?
烙印99

TA貢獻1829條經驗 獲得超13個贊

原因是換行符(來自輸入整數)還沒有被消耗。因此,它被scnr.nextLine()下一次循環迭代消耗,因此跳過第二個姓氏輸入。要使用換行符,請scnr.nextLine()在掃描整數后立即加 1 。


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

    System.out.print("Please enter last name: ");

    userL = scnr.nextLine();

    System.out.println("");

    System.out.println("Please enter first name: ");

    userF = scnr.nextLine();

    System.out.println("Please enter age: ");

    userA = scnr.nextInt();

    System.out.println("");

    scnr.nextLine();

    pName(userL, userF, userA);

}


查看完整回答
反對 回復 2021-12-30
?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

使用scnr.next()將解決您的問題。


為什么它不工作scnr.nextLine()是因為 next() 只會返回空格之前的內容。nextLine() 在返回當前行后自動向下移動掃描儀。您無法輸入詳細信息的第二次迭代的原因是指針在第二次迭代本身之前已經向前移動。


System.out.print("Please enter last name: ");

userL = scnr.next();

System.out.println("Please enter first name: ");

userF = scnr.next();

System.out.println("Please enter age: ");

userA = scnr.nextInt();

System.out.println(userL + " " + userF + " " + userA);


查看完整回答
反對 回復 2021-12-30
  • 3 回答
  • 0 關注
  • 174 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號