史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   程式語言討論區 (http://forum.slime.com.tw/f76.html)
-   -   輸入密碼三次錯誤 (http://forum.slime.com.tw/thread239802.html)

u8810329 2008-12-02 09:09 PM

輸入密碼三次錯誤
 
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load


If InputBox("請輸入密碼") = "T" Then
MsgBox("密碼正確")
Else
MsgBox("密碼錯誤")



If InputBox("請輸入密碼") = "T" Then
MsgBox("密碼正確")
Else
MsgBox("密碼錯誤")
If InputBox("請輸入密碼") = "T" Then
MsgBox("密碼正確")
Else
MsgBox("密碼不對,程式關閉")
Me.Close() '第三次的密碼還是不對,就把表單給關閉了
End If
End If
End If
End Sub
End Class


我想問的事情是如果使用者他途中取消的話
它會說密碼錯誤然後接下一個 if 判斷
如果我把me.close()放入任何一個 if 裡面他是會顯示錯誤ㄟ,除了最後一個 請大家幫幫忙:on_57:

getter 2008-12-06 02:09 PM

作密碼問 3 次 可以用 for 來處理

我以概念碼表示如下

Bool pass = false;

For (i=1 ~ 3) {
pass=密碼程式();
If pass == true Then {結束 For 迴圈} Else {顯示密碼錯誤}
}

If pass == false Then {顯示密碼錯誤 3 次 或取消輸入}

Living 2008-12-07 03:18 AM

你的問題是你並沒有在輸入密碼的過程中加入"取消"這個選項
也就是你每一個IF STATEMENT裡應該加上一個ELSEIF
而ELSEIF是如果按的是"取消鍵"該做什麼

getter 2008-12-07 04:47 AM

引用:

作者: Living (文章 2066712)
你的問題是你並沒有在輸入密碼的過程中加入"取消"這個選項
也就是你每一個IF STATEMENT裡應該加上一個ELSEIF
而ELSEIF是如果按的是"取消鍵"該做什麼

真是厲害,看到樓主的忽略地方了 ...,我在改以一下我的概念碼(虛擬碼)

語法:

Boolean 密碼檢查值 = False;
Boolean 取消鍵值 = False;
String 密碼A = ABCDEF;

For (i=1 ~ 3) {
密碼檢查值 = 密碼程式();
If (取消鍵值 == True) Then {顯示密碼輸入取消並結束 For 迴圈();}
If (密碼檢查值 == True) Then {結束 For 迴圈();} Else {顯示密碼錯誤();}
}

If (密碼檢查值 == True) Then {做該做的事();}
---------------------------------------------------
密碼程式(){
String 密碼B;
密碼B = 輸入字串();
取消鍵值 = 檢查有取消鍵(ESC);
If (取消鍵值 == True) Then {Return False;}
If (密碼A == 密碼B) Then {Return True;} Else {Return False;}
}

或者

語法:

Integer 密碼檢查值 = 0; //0 表示密碼錯誤、1 表示密碼正確、2 表示密碼取消 
String 密碼A = ABCDEF;

For (i=1 ~ 3) {
密碼檢查值 = 密碼程式();
If (密碼檢查值 == 2) Then {顯示密碼輸入取消並結束 For 迴圈();}
If (密碼檢查值 == 1) Then {結束 For 迴圈();} Else {顯示密碼錯誤();}
}

If (密碼檢查值 == 1) Then {做該做的事();}
---------------------------------------------------
密碼程式(){
String 密碼B;
密碼B = 輸入字串();
If (檢查有取消鍵 (ESC)) Then {Return 2;}
If (密碼A == 密碼B) Then {Return 1;}
Return 0;
}


u8810329 2008-12-09 09:09 PM

為什麼大家寫的程式碼根本不是vb呢
害我都看不太懂
等於是無法下手阿
:on_72:

getter 2008-12-09 11:02 PM

引用:

作者: u8810329 (文章 2067892)
為什麼大家寫的程式碼根本不是vb呢
害我都看不太懂
等於是無法下手阿
:on_72:

概念碼(虛擬碼),不是正式的程式語言,不過會隨著程式語言的寫作習慣,
會有向某些類型的程式語言,向我寫得概念碼就會比較類似 C/C++/java。

概念碼通常只表示程式的概念大方向的方式,細節的部份不一定會詳述,
因此依據概念碼,要寫出想要的程式語言設計,是要看個人的能力的。

所有程式語言設計的概念、流程都是差不多的,只要看得懂概念碼的,
大致就能寫出想要的程式語言的設計。除非這個概念碼有問題 ...

程式設計的概念、流程,不外乎有:
1.變數、常數的宣告、資料型態。
2.流程控制指令:loop(for/while/do while)、if、switch。
3.副程式、方法、遞迴型副程式。
4.運算子、演算法、運算式。
5.特殊符號。
6.程式結構。

通常變數、常數的宣告很相似 ...
以你用的 vb 來說,變數宣告是以 Dim 變數名稱 [變數類型]
而以 c/c++/java 變數宣告是以變數類型指令來宣告變數的
如 「變數類型的宣告命令 變數名稱,變數名稱 ...」(宣告整數的變數),
我介紹幾個在 c/c++/java 的常用的變數宣告指令。

格式:宣告命令 變數名稱[維度A][維度B],變數名稱[維度A][維度B],...

如 int a; (宣告一個整數變數 a)或 int a,b,c; (宣告三個整數變數 a,b,c)
int a[5]; (宣告一個一維整數陣列 a)或 int a[10][5] (宣告一個二維整數陣列 a)

bool/boolean 布林函(true/false)
int 整數(integral) 32 bits
short 短整數 16 bits
long 長整數 64 bits
float 浮點數 32 bits (相當於精確度) 
double 雙倍長度浮點數 64 bits (相當於雙確度)
char 字元 8 bits
string 字串 (JAVA)

; 代表該行命令敘述的結束(這部份跟vb用斷行的方式是不太一樣)。

( ) 號
1.通常表示流程控制指令的條件,如 for(i=1;i<=5;i++) i=1開始;i<=5結束;每次i+1
相當於 For i = 1 To 5 Next,
2.表示副程式、函式的參數格式下在()裡,一個名稱接有該()時表示為副程式或函式。

{} 號用來表示副程式、迴圈、流程控制指令等的執行敘述範圍。
如 if(A==B){I+1;}else{I-1;},則 vb
為 if A=B then I+1 else I-1 end if

// 表示該符號之後的該行文字為註解說明,不會被程式執行
/* */ 表示該符號的多行文字為註解說明,不會被程式執行,如/*多行文字*/

在 = 在 c/c++/java 一律只有指定值給誰的意思,如 i=1,
那 i 的內容是設定成 1。

若是 == 在 c/c++/java 一律只有比較的意思,就是「比較等於」,
如 i==1,那 i 的內容是 1 時,就是等於或相等,傳出 true 的值,
若不相等則傳出 false。

-----------------------------------------------------------
有很多人寫的虛擬碼會以 vb 或 c/c++/java ... 等得綜合體,或是以口
語化的方式表示,為的只是在閱讀上的簡單又明白 ...

(xx,111)用來表示控制、判斷條件(副程式、函式的參數),以簡單易懂得方式呈現。

name( ) 用來表示副程式、函式。

{} 用來表示副程式、迴圈、流程控制指令等的執行敘述範圍。

至於變數的宣告就以看得懂就好。如 Integral i,j,k; ,
表示一次宣告 i,j,k 三個變數。

Integral 整數
Boolean 布林邏輯
String 字串
Char 字元
Array或[] 陣列
Float 浮點數

至於程式只註解有的會有 c 語言的註解符號 // 或 /**/

Living 2008-12-10 12:14 AM

引用:

作者: u8810329 (文章 2067892)
為什麼大家寫的程式碼根本不是vb呢
害我都看不太懂
等於是無法下手阿
:on_72:

孩子 問問題請客氣一點

這些作業其實都是最低階的程式語言課裡所學

告訴你問題出在哪裡 你還是得靠自己寫出來

這對你的程式設計才有幫助

幫你寫完 你學到什麼?

getter 2008-12-10 11:11 AM

不懂的地方除了論壇外,還可以多多利用 Google 老師找找看 ...


所有時間均為台北時間。現在的時間是 11:10 AM

Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1