2017-08-18 103 views
-3

這個循環的目的是在一個句點鍵輸入後立即停止,但它不工作,我不明白爲什麼。爲什麼這個do-while循環不停止?

import java.io.IOException; 


public class ControlFlowTest { 

public static void main(String[] args) throws java.io.IOException { 
    char ch ; 

    do{ 
     ch = (char) System.in.read(); 
    }while(ch != '.'); 

} 
+6

試着檢查'ch' cotains? –

+1

https://ericlippert.com/2014/03/05/how-to-debug-small-programs/ –

+2

[Works for me。](http://ideone.com/bu5wlT) – shmosel

回答

0

您將要使用掃描儀,因爲System.in.read()會阻塞,直到輸入回車符。試試這個:

import java.io.IOException; 

public class ControlFlowTest { 
    public static void main(String[] args) throws java.io.IOException { 
     char ch ; 

     Scanner scanner= new Scanner(System.in); 
     do { 
      ch = scanner.next().charAt(0); 
     } while(ch != '.'); 
    } 
} 
+0

這會做同樣的事情,只會更糟糕。隨着您的解決方案輸入「abc」。並按Enter鍵不會退出循環。 – Oleg