2017-10-24 1 views
0

Public Class Form1Visual Basic 2010 für ..um Statment

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    Dim password As String, ch As Char 
    Dim i As Integer 
    Dim valid As Boolean = False 
    While valid = False 
     password = InputBox("Please enter your password") 
     For i = 0 To password.Length - 1 
      ch = password.Chars(i) 
      If Not Char.IsLetterOrDigit(ch) Then 
       valid = True 
       Exit For 
      End If 
     Next 
     If valid Then 
      MsgBox("Your new password will be activated immediately") 
     Else 
      MsgBox("your password must contain at least one special symbol") 
     End If 
    End While 
End Sub 

Hallo an alle, dieses Programm wird prüfen, ob ein Symbol in dem Passwort ist, meine Frage ist in der statment (For i = 0 To password.Length - 1) sein über (- 1) Warum haben wir -1 geschrieben, ich verstand alles außer diesem -1, danke

+0

Es fängt an, bei 0 zu zählen. Also, wenn die Zeichenfolge, sagen wir, 3 Zeichen lang ist, dann können Sie Zeichen (0), Zeichen (1) und Zeichen (2), aber nicht Zeichen (3) verwenden. Die For-To-Anweisung wurde vor vielen, vielen Jahren entworfen, als es noch üblich war, mit 1 zu zählen. Aber in .NET ist der erste gültige Index immer 0. –

+0

Danke, ich weiß, was meinst du, aber ich frage nach (-1) am Ende der Anweisung, was macht (-1)? Warum haben wir -1 abgezogen? – cain

Antwort

0

Richtig, ich habe es, Sie haben Recht. Es ist, weil vb beginnt, von 0 zu zählen, also, wenn ich 1234 schreibe, bedeutet das für vb 12345, und dann sollten wir die letzte Ziffer um -1 entfernen und dann 1234 als Ergebnis angeben. Danke Hans Passant