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

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

我如何擺脫這個用戶說是的無限循環,然后回到第一個 while 循環,直到用戶說不?

我如何擺脫這個用戶說是的無限循環,然后回到第一個 while 循環,直到用戶說不?

慕勒3428872 2023-03-09 13:57:57
我試圖提示用戶輸入一個數字,然后詢問他們是否要輸入另一個數字。如果是,則他們重新啟動第一個 while 循環,如果不是,則他們退出以打印他們選擇的數字。但是似乎無論我做什么,我都無法擺脫第一個循環。它只是一遍又一遍地重復數字。我試著把 userInput = "y", break, and continue 放在 where valid= true; 的末尾 目前是,它們都產生相同的結果。陷入無限循環。ArrayList<Integer> inputs = new ArrayList<Integer>();System.out.println("Enter some numbers: ");   String userInput = "y";     boolean valid = false;    do {        while (scnr.hasNextInt()) {           inputs.add(scnr.nextInt());           System.out.println("Would you like to enter another?");           valid = true;           }           System.out.println(inputs);    } while (!userInput.equalsIgnoreCase("n"));
查看完整描述

2 回答

?
料青山看我應如是

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

問題是你沒有跳出內循環。在這里我將如何編寫相同的代碼:


import java.util.ArrayList;

import java.util.Scanner;


public class ReadNumbers {

  public static void main(String[] args) {

    ArrayList<Integer> inputs = new ArrayList<Integer>();

    System.out.println("Enter some numbers: ");

    try (Scanner scnr = new Scanner(System.in)) {

      do {

        inputs.add(scnr.nextInt());

        System.out.println("Would you like to enter another y/n?");

      } while (scnr.next().equalsIgnoreCase("y"));

    }

    System.out.println(inputs);

  }

}

這會產生以下輸出:


Enter some numbers: 

14

Would you like to enter another y/n?

y

15

Would you like to enter another y/n?

y

17

Would you like to enter another y/n?

y

44

Would you like to enter another y/n?

n

[14, 15, 17, 44]

讀取數字的另一種方法是從空格分隔的行中讀取幾個:


查看完整回答
反對 回復 2023-03-09
?
慕姐4208626

TA貢獻1852條經驗 獲得超7個贊

我認為你把這個復雜化了。您只需要一個循環,該循環一直運行到用戶輸入“n”為止。


在此之前,要求用戶輸入一個數字,讀入,然后詢問他們是否要繼續。適當地更新循環條件,你就完成了:


public static void main(String... args) {

    ArrayList<Integer> inputs = new ArrayList<Integer>();

    try (Scanner scnr = new Scanner(System.in)) {

        boolean valid = true;

        while (valid) {

            System.out.println("Enter some numbers: ");

            if (scnr.hasNextInt()) {

                inputs.add(scnr.nextInt());

            }

            System.out.println("Would you like to enter another?");

            String response = scnr.next();

            valid = response.trim().equalsIgnoreCase("y");

        }

    }

    System.out.println(inputs);

}

產生輸出


Enter some numbers: 

1

Would you like to enter another?

y

Enter some numbers: 

2

Would you like to enter another?

y

Enter some numbers: 

3

Would you like to enter another?

n

[1, 2, 3]


查看完整回答
反對 回復 2023-03-09
  • 2 回答
  • 0 關注
  • 128 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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