我是新來的java,很抱歉如果我的編程技能很差。我的程序需要使用一個隊列來模擬一個I/O緩衝區。它不斷接受用戶輸入的線路。如果用戶插入一個O(哦),它將返回輸入的第一行。如果輸入X,它需要結束。我的do-while循環似乎沒有執行我的if語句
這是我的計劃:
public static void main(String[] args) {
Queue<String> queue = new LinkedList<String>();
Scanner input = new Scanner(System.in);
String check = input.nextLine();
do {
queue.add(check);
if(check.equals("O")) {
if(queue.peek() != null){
String remove = queue.remove();
System.out.println("Data: " + remove);
}
else if(queue.peek() == null) {
System.out.println("Buffer empty");
}
}
} while(!"X".equals(check)) ;
預期的投入產出是:
line1
line2
O
Data: line1
line3
line4
O
Data: line2
O
Data: line3
line5
O
Data: line4
O
Data: line5
O
Buffer empty
X
我的程序似乎並沒有執行我的if語句,因爲它從來沒有停止要求輸入不會退出一次,X由用戶給出。
對不起,如果我失去了明顯的東西。
'它永遠不會停止要求輸入' - 不可能的。輸入部分在**循環之前是**,它只需要輸入一次,如果輸入與「X」不同,則會出現無限循環。也許你發佈了一箇舊版本的代碼? – BackSlash