210 likes | 319 Views
Chapter 4. Decisions and Conditions. Decisions and Conditions. Block If statements Nested If statements Evaluating Conditions and Relational Operators Testing Values with option buttons & check boxes Validating input numeric fields Creating Message boxes Calling event procedures
E N D
Chapter 4 Decisions and Conditions
Decisions and Conditions • Block If statements • Nested If statements • Evaluating Conditions and Relational Operators • Testing Values with option buttons & check boxes • Validating input numeric fields • Creating Message boxes • Calling event procedures • Debugging with breakpoints & stepping execution
Decision Making • Alternative courses of action are required in a program • The IF statement provides one of these structures • There are two types of IF statements • Single-line IF statement • Multi-line IF statement
Comparison Operators Symbol Meaning > Greater than < Less than = Equal to <= Less than or equal to >= Greater than or equal to <> Not equal to
Form: If condition Then statement(s) End If True Sleepy? Go to bed False IF Statement Structure (1)
Form: If condition Then t-statement(s) Else f-statement(s) End If False True Is SAT > 600? Do Not Admit Admit IF Statement Structure (2)
Form: If condition-1 Then If condition-2 Then t-statement-2 Else f-statement-2 End If Else f-statement-1 End If False True Is SAT > 600? False True Is GPA > 3.75? Do Not Admit Consider Admit IF Statement Structure (3)
Conditions • Comparing Numeric Variables & Constants • Comparing Strings • Comparing text property of text boxes • Uppercase and lowercase character comparisons • Compound conditions
If & opt. buttons & check boxes • If chkFlag = True Then imgFlag.Visible = True • If optDisplayForm Then frmSecond.Show
Compound Conditions • If a1 <= a2 or a3 > a4 and a5 < a6 Then • And has precedence over Or • All comparison operators have precedence over all logical operators • Use parentheses to alter the order of evaluation
Displaying Messages in Message boxes • Special window displaying message to user • Form: MsgBox “message” [,buttons][, “t.b. caption”] • Example: MsgBox “Numeric ID only”, vbOkOnly, “Error”
Displaying a Message String • Use & to concatenate strings (“Concatenate” means join end to end) • The VB intrinsic constant vbCRLF creates a new line in a string MsgBox stMessage, vbOKOnly, stTitle
Message box return values Constant Value Description vbOK 1 OK button pressed. vbCancel 2 Cancel button pressed. vbAbort 3 Abort button pressed. vbRetry 4 Retry button pressed. vbIgnore 5 Ignore button pressed. vbYes 6 Yes button pressed. vbNo 7 No button pressed.
Input Validation • Checking a data type: IsNumeric & IsDate • IsNumeric checks & returns true or false If IsNumeric(txtQty.Text) Then lblDue.Caption = curPrice + Val(txtQty) • Validating value ranges If Val(txtHours.Text) > 10 And _ Val(txtHours.Text) <= 80 Then ...
Data Validation • IsDate returns true or false depending on whether or not a value is a date If IsDate(txtData) Then … • the VarType function return a number that corresponds to the data type stored in a variant. If VarType(varValue) = 0 Then...
Using LostFocus to Validate • LostFocus is a way to validate check boxes before allowing user to go on. • But is it a good way? • Consider the code If txtUserName.Text = "" Then txtUserName.SetFocus • Problem: some object gets focus and you cannot have allow both objects to be tested using the LostFocus event.
Calling Event Procedures • An event procedure is a subprocedure that reacts to a specific event such as a button click. • You can call any given event procedure from multiple locations, as long as the procedure is in the same form or is public • Example: Call cmdCalculate_Click • Suffix is event, prefix is object name
Debugging VB Projects • Debug projects by setting code breakpoints • Run the project, • Step through the code window at break time by pressing F8, • Point to variables above executed code lines to view their current values (see program shot in Notes portion of this slide)
Debugging continued • You can choose "Step into" or "Step over" • Step into traces all code execution, including traversing down into subprocedures • Step over stays with current subprocedure only, not showing any called routines' code