2013-10-02 41 views
2

我是一名初級程序員,正在學習IB計算機科學,並且正在從練習的教科書中學習。在用戶錯誤地輸入密碼3次後,如何結束此循環。創建密碼應用程序。如何在密碼輸入錯誤後結束循環3次

public class Password 
{ 
    public static void main(String[]args) 
    { 
     int remaining = 3; 
     String reenter="hello"; 
     do 
     { 

      String password=IBIO.inputString("Please enter the password: "); 
      if (password.indexOf("hello")>-1) 
      { 
       System.out.println("Welcome"); 
      } 
      else 
      { 
       System.out.println("Access Denied"); 
       remaining--; 
      } 
      reenter=IBIO.inputString("Enter the password: "); 

     } 
     while (reenter.equals("hello")); 
     while (remaining > 0); 
    } 
} 

因此,這是什麼樣子,但現在當我輸入密碼錯了,它只是說,訪問被拒絕一次,然後那種無法顯示任何東西。我很確定我不能有兩個以上的時間。而且當我正確地輸入密碼時,它會一直要求我輸入密碼,以便它不會關閉循環。而只有每個其他時間我輸入它正確它說「歡迎」

+0

所以大家都知道,這不是一個強或適當的認證方案。 – Ethan

回答

2

Introdcue反

int remaining = 3; 

,並在else分支遞減它:

remaining-- 

檢查它比大0.更換線

while (reenter.equals("hello")); 

與此:

while (remaining > 0); 
+0

請看看我做錯了什麼。 – user2838611

+0

@ user2838611看我的編輯。 – 2013-10-02 13:13:38

+0

使用'while(remaining!= 0)'會更有效率,因爲機器代碼指令少了。 – zmirc

0

您可以創建變量並在用戶每次輸入密碼時遞增。完成三次後,您可以退出方法。

0

更換

while (reenter.equals("hello")); 
while (remaining > 0); 

while (reenter.equals("hello") && remaining > 0); 

然後

if (remaining > 0) 
     System.out.println("Welcome"); 
    else 
     System.out.println("You are banned"); 
相關問題