1 回答

TA貢獻1860條經驗 獲得超8個贊
您需要{ ... }在語句中的塊周圍使用大括號if:
for (int i=0; i<2;) {
if (!pass.equals (password))
? ? i++;
? ? System.out.println("Try again! ");
? ? String pass1 = sc.next();
? ? ? ? ?if(pass.equals( password))
? ? ? ? ? ? System.out.println("Welcome");
? ? ? ? ? ? String pass2 = sc.next();
? ? ? ? if (i == 2)
System.out.println("Sorry, your account is suspened");
}?
實際上的意思是這樣的:
for (int i = 0; i < 2; ) {
? ? if (!pass.equals(password)) {
? ? ? ? i++;
? ? }
? ? System.out.println("Try again! ");
? ? String pass1 = sc.next();
? ? if (pass.equals(password)) {
? ? ? ? System.out.println("Welcome");
? ? }
? ? String pass2 = sc.next();
? ? if (i == 2) {
? ? ? ? System.out.println("Sorry, your account is suspened");
? ? }
}
一旦我們正確縮進了代碼并在編譯器期望的位置添加了大括號,我們就可以開始看到一些問題。
例如:
當密碼正確時,不會增加任何內容
i
。這意味著這i < 2
不會是真的,并且循環將繼續循環下去。您為每個循環迭代調用
next()
兩次。
等等。
現在我可以為你重寫你的代碼1。但你不會從中學到很多東西。(您可以通過自己編寫代碼、犯錯誤、發現并糾正它們……自己來學得最好?。?/p>
相反,我會推薦您閱讀有關“橡皮鴨”調試技術的內容。這聽起來像是一個笑話,但事實并非如此。這是一項以幽默的方式解釋的重要技術。這就是我在 18 歲學習編程時所學到的一種調試程序的方法2。
橡皮鴨調試背后的想法是幫助您了解計算機如何“思考”。一旦你能做到這一點,編程就會變得容易得多。這就是為什么我強烈建議您自己做這件事!
不管怎樣,一旦你能想象出代碼哪里出了問題,下一步就是弄清楚它應該做什么。
1 - 一開始會更快!
2 - 雖然我們當時并沒有叫它這個名字。我們稱之為手工執行,我們用鉛筆和紙來完成。通常在舊計算機打印輸出的背面。是的,很久以前了。那時,我們沒有調試器或 IDE。需要打卡并等待 20 分鐘才能取回打印輸出!
添加回答
舉報