2016-10-02 32 views
0

假設角色變量已經初始化,我需要知道如何做,重複這個循環,而變量角色通過.equals()這三個字符串中的任何一個都是不同的,就像通常用單個串。java中的do-while比較

do {  
    System.out.println("Input role"); 
    System.out.println("Administrator/Client/User"); 
    role=reader.stringReader(); 
    role=role.toLowerCase(); 
} while (role!="administrator" || "client" || "user"); 
+0

'while(role!=「administrator」&& role!=「cli ent「&& role!=」user「);' – XenoRo

+0

也許類似於: '!(role.equals(」administrator「)|| role.equals(「....' 雖然可能與文字第一次爲一點零安全...''管理員」.equals(角色)' 或我會加載到一個描述性名稱集並使用'contains'。注意分佈式反轉,取決於你想要否定的位置。 –

+0

@AlmightyR當OP沒有付出任何努力時,你需要使用'.equals()' – c0der

回答

0

假設你要檢查role!="administrator" && role!="client" && role!="user使用:

//role=role.toLowerCase(); 
} while (! role.equalsIgnoreCase("administrator") && 
      ! role.equalsIgnoreCase("client") && 
      ! role.equalsIgnoreCase("user") 
     ); 
1

首先創建一個像這樣的方法:

private static boolean isMatch(String input) { 
    String[] goodInputs = new String[]{"administrator","client","users"}; 
    for (int i = 0; i < goodInputs.length; i++) { 
    if (input.equals(goodInputs[i])) return true; 
    } 
    return false; 
} 

,那麼你的代碼可以是這樣的

do {  
    System.out.println("Input role"); 
    System.out.println("Administrator/Client/User"); 
    role=reader.stringReader(); 
    role=role.toLowerCase(); 
} while (!isMatch(role)); 
+0

一個小建議:將'.toLowerCase();'移到'isMatch'。向上推薦你的建議。 – c0der