2014-06-09 74 views
0

編輯:問題原來是由於我在程序的前一部分中關閉了System.in而導致的,因此稍後將無法使用。Java:while循環用於用戶輸入不執行

我試圖創建一個用戶輸入一個循環,但它不是功能...

下面是我有:

Scanner userkey = new Scanner(System.in); 

    System.out.println("Enter commands"); 
    while(userkey.hasNext()){ 

     if (userkey.next().equals("exit")){ 
      System.out.println("EXIT!!!!"); 
      break; 
     } 
     System.out.println("In while loop test"); 
    } 

我猜userkey.hasNext()是返回false出於某種原因...

+0

你'if'聲明後,不要加分號。是否有其他錯誤? –

+0

@StéphaneBruckert我認爲在這種情況下,它只會被編譯爲一個空的聲明 – awksp

+0

@StéphaneBruckert編輯我的文章。這不在我測試的代碼中。仍然有問題。 – TryingToCode

回答

0

試試這個:

import java.util.Scanner; 

public class Snippet { 
    public static void main(String[ ] args) 
    { 

     Scanner scanner = new Scanner(System.in); 
      String readString = scanner.nextLine(); 
      while(readString!=null) 
      { 
       System.out.println(readString); 
       if(readString.equals("")) 
        System.out.println("Read Enter Key."); 
       if(scanner.hasNextLine()) 
        readString = scanner.nextLine(); 
       else 
        readString = null; 

       if(readString.equals("exit")){ 
        System.out.println("EXIT"); 
        break; 
       } 
      } 

    } 

} 

即使你的代碼應該工作,但是這個我是一個更詳細的版本。

0

試試這個代碼:

import java.util.Scanner; 
    public static void main(String[] args) { 
     // TODO code application logic here 
     Scanner userkey = new Scanner(System.in); 
     System.out.println("Enter commands"); 
     do { 
      if (userkey.next().equals("exit")) { 
       System.out.println("EXIT!!!!"); 
       break; 
      } 
      System.out.println("In while loop test"); 
     }while(userkey.hasNext()); 

    } 
}