1 / 24

Variables and Conditionals

Variables and Conditionals. Hal Helms halhelms.com. What we'll cover. Basics of variables Types of variables (strings, arrays, etc.) Scopes of variables (session, application, etc.) Conditionals (working with boolean variables). Basics. Variables are name/value pairs

Download Presentation

Variables and Conditionals

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Variables and Conditionals Hal Helms halhelms.com

  2. What we'll cover • Basics of variables • Types of variables (strings, arrays, etc.) • Scopes of variables (session, application, etc.) • Conditionals (working with boolean variables)

  3. Basics • Variables are name/value pairs • Variables permit our programs to work with values that can't be known at design time or that may change from their original value • customerName • yourStreetAddress • currentUser

  4. Basics • Variables give context and constraint to values • The value "42" is meaningless apart from a context, usually provided by variable name (e.g. meaningOfLife) • Data typing constrains variables to hold meaningful values • isNumeric() returns a boolean value • randRange() returns an integer value

  5. Strong data typing • Some languages employ strong typing, requiring the programmer to declare a variable's data type prior to using it • String myName; • int myAge; • Company myEmployer; • Examples • Java • C#

  6. Weak data typing • Other languages use weak typing, in which the language implicitly determines the data type of a variable • Examples • Smalltalk • ColdFusion • Weakly typed languages are not untyped languages!

  7. Data typing • Different data types hold different types of values • string • int • structure • Car "Visualize whirled peas" 1024 name "Hal Helms" ACMmember true numberOfChildren 1

  8. ColdFusion data types • string • numeric • query • list (string) • structure • array • object • boolean • date • GUID • UUID

  9. Complex variable type: query • query • series of 1 or more rows with column or field values for each row id price description 100 29.99 Widget 200 75.00 Framus, left-handed products • addressable • products.price — refers to current row • products.price[2] — specifies row

  10. Complex variable type: structure • structure • collection of name/value pairs grouped around a central idea or item teacher Hal Helms Ben Edwards maxStudents 10 isActive true javaClass • addressable • javaClass.maxStudents • javaClass['maxStudents']

  11. Complex variable type: 1-d array • one-dimensional array • collection of ordered values • resembles a single row of a spreadsheet [1] [2] [3] Ben Edwards Hal Helms Sean Corfield onedee • addressable • onedee[2]

  12. Complex variable type: 2-d array • two-dimensional array • collection of ordered values • resembles multiple rows of a spreadsheet [1] [2] [3] [1] 72 68 84 69 62 69 [2] • addressable • twodee[1][3] twodee

  13. Complex variable type: object • Objects are fundamentally different from all other data types in that they encapsulate both data and behavior • Objects allow us to create scale models of the world under consideration • Car • getMake(): string • addGas(gallons): void • accelerate(): void

  14. Quiz time! • For each of the following,explain which data type you'd use and why • final test scores for all students • collection of Student objects • lyrics to "Memories" (thank heavens for garbage collection!) • number of students in a class • information from LDAP server • composer's date born, date died, nationality, typical genre • an hourly employee

  15. Understanding scopes • A variable typically has a lifespan and a scope • lifespan: how long the system keeps a reference to a variable • scope: location from which variable is visible • In ColdFusion, a variable's scope and lifespan are bound together in a single attribute, scope, which is prefixed to the variable name

  16. Understanding scopes

  17. Quiz time! • For each of the following,explain which scope you'd use and why • global "constants" such as datasource name • query meant to be created and used on same page • a CFC, currentUser, that encapsulates data and behavior for the currently logged in user • a cookie crumb array • a userID meant to identify the user between visits • a custom tag "reaching into" the base template to read or set a variable on that page

  18. Conditionals • All conditionals involve carrying out some instructions based on whether an expression evaluates to true

  19. <cfif> <cfif form.betNumber EQ winningNumber> <cflocation url="index.cfm?fuseaction=home.winner" /> </cfif>

  20. <cfelse> <cfif form.betNumber EQ winningNumber> <cflocation url="index.cfm?fuseaction=home.winner" /> <cfelse> <cflocation url="index.cfm?fuseaction=home.loser" /> </cfif>

  21. <cfelseif> <cfif form.betNumber EQ winningNumber> <cflocation url="index.cfm?fuseaction=home.winner" /> <cfelseif form.betNumber LT 0> <cflocation url="index.cfm?fuseaction=home.cheater" /> <cfelse> <cflocation url="index.cfm?fuseaction=home.loser" /> </cfif>

  22. iif() <cfset randomBoolean = iif(RandRange(0,1), true, false) />

  23. switch/case <cfswitch expression="#attributes.fuseaction#"> <cfcase value="home"> <cfinclude template="dspHome.cfm" /> </cfcase> <cfdefaultcase> <cfinclude template="qryMenuItems.cfm" /> <cfinclude template="dspMenu.cfm" /> </cfdefaultcase> </cfswitch>

  24. Conclusion • Variables are the basis of all programs • Data typing, although mostly hidden in ColdFusion, is very important—particularly in OO languages • Do experiment with "complex" data types; you'll find they make your code easier to write and maintain • Conditionals allow us to execute commands based on the result of some run time boolean value

More Related