1 回答

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超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");
}?
實(shí)際上的意思是這樣的:
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");
? ? }
}
一旦我們正確縮進(jìn)了代碼并在編譯器期望的位置添加了大括號,我們就可以開始看到一些問題。
例如:
當(dāng)密碼正確時,不會增加任何內(nèi)容
i
。這意味著這i < 2
不會是真的,并且循環(huán)將繼續(xù)循環(huán)下去。您為每個循環(huán)迭代調(diào)用
next()
兩次。
等等。
現(xiàn)在我可以為你重寫你的代碼1。但你不會從中學(xué)到很多東西。(您可以通過自己編寫代碼、犯錯誤、發(fā)現(xiàn)并糾正它們……自己來學(xué)得最好?。?/p>
相反,我會推薦您閱讀有關(guān)“橡皮鴨”調(diào)試技術(shù)的內(nèi)容。這聽起來像是一個笑話,但事實(shí)并非如此。這是一項(xiàng)以幽默的方式解釋的重要技術(shù)。這就是我在 18 歲學(xué)習(xí)編程時所學(xué)到的一種調(diào)試程序的方法2。
橡皮鴨調(diào)試背后的想法是幫助您了解計算機(jī)如何“思考”。一旦你能做到這一點(diǎn),編程就會變得容易得多。這就是為什么我強(qiáng)烈建議您自己做這件事!
不管怎樣,一旦你能想象出代碼哪里出了問題,下一步就是弄清楚它應(yīng)該做什么。
1 - 一開始會更快!
2 - 雖然我們當(dāng)時并沒有叫它這個名字。我們稱之為手工執(zhí)行,我們用鉛筆和紙來完成。通常在舊計算機(jī)打印輸出的背面。是的,很久以前了。那時,我們沒有調(diào)試器或 IDE。需要打卡并等待 20 分鐘才能取回打印輸出!
添加回答
舉報