2016-03-15 68 views
0

我會比較char,但它實際上不起作用:比較CHAR變量在Java中

//... 
System.out.print("PROCEED? (Y/N):\t"); 
line = in.nextLine(); 
ch = line.charAt(0); 

while (ch != 'y' || ch != 'n' || ch != 'Y' || ch != 'N'){ 
    System.out.print("NON-VALID INPUT. TYPE Y-N:\t"); 

    line = in.nextLine(); 
    ch = line.charAt(0); 
} 
//... 

在我的終端,因爲我按yn,其結果是:

PROCEED? (Y/N): y 
NON-VALID INPUT. TYPE Y-N: y 
NON-VALID INPUT. TYPE Y-N: Y 
NON-VALID INPUT. TYPE Y-N: n 
NON-VALID INPUT. TYPE Y-N: r 
NON-VALID INPUT. TYPE Y-N: d 
... 
+0

'ch!='y'|| ch!='n''將總是*爲真,因爲如果'ch =='y''那麼'ch!='n'';如果'ch =='n''那麼'ch!='y'';如果'ch!='y''和'ch!='n''那麼它也是如此。 –

回答

5

你的情況不對。它應該是:

while(ch!='y' && ch!='n' && ch!='Y' && ch!='N') 

因爲該循環應該只要繼續輸入字符比不同所有 4上可接受的輸入。

0

您需要在while循環中使用&&而不是||

0

條件錯誤。如果用戶輸入('Y','y','N','n')除外,則必須輸入「and」條件(& &),才能進入該條件。 代碼如下:

System.out.print("PROCEED? (Y/N):\t"); 
    Scanner in = new Scanner(System.in); 
    String line=in.nextLine(); 
    Character ch=line.charAt(0); 

    while(ch!='y' && ch!='n' && ch!='Y' && ch!='N'){ 
     System.out.print("NON-VALID INPUT. TYPE Y-N:\t"); 

     line=in.nextLine(); 
     ch=line.charAt(0); 
    } 

希望這可以幫助你。