User Guide

Table Of Contents
CFScript example 139
Reviewing the code
The following table describes the code:
Code Description
<cfscript>
acceptedApplicants[1] = "Cora Cardozo";
acceptedApplicants[2] = "Betty Bethone";
acceptedApplicants[3] = "Albert Albertson";
rejectedApplicants[1] = "Erma Erp";
rejectedApplicants[2] = "David Dalhousie";
rejectedApplicants[3] = "Franny Farkle";
applicants.accepted=acceptedApplicants;
applicants.rejected=rejectedApplicants;
rejectCode=StructNew();
rejectCode["David Dalhousie"] = "score";
rejectCode["Franny Farkle"] = "too late";
Creates two one-dimensional arrays, one
with the accepted applicants and
another with the rejected applicants. The
entries in each array are in random order.
Creates a structure and assign each
array to an element of the structure.
Creates a structure with rejection codes
for rejected applicants. The
rejectedCode structure does not have
entries for all rejected applicants, and
one of its values does not match a valid
code. The structure element references
use associative array notation in order to
use key names that contain spaces.
ArraySort(applicants.accepted,"text","asc");
WriteOutput("The following applicants were
accepted:<hr>");
for (j=1;j lte
ArrayLen(applicants.accepted);j=j+1) {
WriteOutput(applicants.accepted[j] & "<br>");
}
WriteOutput("<br>");
Sorts the accepted applicants
alphabetically.
Displays a heading.
Loops through the accepted applicants
and writes their names. Braces enhance
clarity, although they are not needed for
a single statement loop.
Writes an additional line break at the end
of the list of accepted applicants.
ArraySort(applicants.rejected,"text","asc");
WriteOutput("The following applicants were
rejected:<hr>");
Sorts rejectedApplicants array
alphabetically and writes a heading.
for (j=1;j lte
ArrayLen(applicants.rejected);j=j+1) {
applicant=applicants.rejected[j];
WriteOutput(applicant & "<br>");
Loops through the rejected applicants.
Sets the applicant variable to the
applicant name. This makes the code
clearer and enables you to easily
reference the
rejectCode array later in
the block.
Writes the applicant name.
if (StructKeyExists(rejectCode,applicant)) {
switch(rejectcode[applicant]) {
case "score":
WriteOutput("Reject reason: Score was too
low.<br>");
break;
case "late":
WriteOutput("Reject reason: Application was
late.<br>");
break;
default:
WriteOutput("Rejected with invalid reason
code.<br>");
} //end switch
} //end if
Checks the rejectCode structure for a
rejection code for the applicant.
If a code exists, enters a switch
statement that examines the rejection
code value.
If the rejection code value matches one
of the known codes, displays an
expanded explanation of the meaning.
Otherwise (the default case), displays an
indication that the rejection code is not
valid.
Comments at the end of blocks help
clarify the control flow.