Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 18 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
18
Dung lượng
30,76 KB
Nội dung
TheJSPFiles(part 2): AttackOfTheKillerFortuneCookies By Vikram Vaswani and Harish Kamath This article copyright Melonfire 2000−2002. All rights reserved. Table of Contents Overdrive .1 Adding It All Up 2 Flavour OfThe Month .5 Turning Up The Heat .7 Do It Or Else 9 Cookie−Cutter Code .10 Lunch In Milan .13 Switching Things Around .15 TheJSPFiles(part 2): AttackOfTheKillerFortuneCookies i Overdrive With a little bit of luck, our introductory article on JSP left you so excited that you spent the last few days eagerly practicing variable names and letting your friends know how much smarter you are than them. And this week, we're going to help you cement your reputation still further, by giving you a crash course in JSP's conditional statements and loops. Make sure you're strapped in tight − this is gonna be one hell of a ride! Overdrive 1 Adding It All Up You'll remember how, in the first part of this tutorial, we used the + operator to add numbers and strings together. And just as you have the + operator for addition, JSP comes with a bunch of other arithmetic operators designed to simplify the task of performing mathematical operations. The following example demonstrates the important arithmetic operators available in JSP: <html> <head> </head> <body> <%! // declare variables int alpha = 25; int beta = 5; int sum, difference, product, quotient, remainder; %> <% // perform operations out.println("The sum of " + alpha + " and " + beta + " is " + (alpha + beta) + "<br>"); out.println("The difference of " + alpha + " and " + beta + " is " + (alpha − beta) + "<br>"); out.println("The product of " + alpha + " and " + beta + " is " + (alpha * beta) + "<br>"); out.println("The quotient after division of " + alpha + " and " + beta + " is " + (alpha / beta) + "<br>"); out.println("The remainder after division of " + alpha + " and " + beta + " is " + (alpha % beta) + "<br>"); %> </body> </html> And here's the output: Adding It All Up 2 The sum of 25 and 5 is 30 The difference of 25 and 5 is 20 The product of 25 and 5 is 125 The quotient after division of 25 and 5 is 5 The remainder after division of 25 and 5 is 0 As with all other programming languages, division and multiplication take precedence over addition and subtraction, although parentheses can be used to give a particular operation greater precedence. For example, <% out.println(10 + 2 * 4); %> <hr noshade size=1 color=#cccccc></pre></blockquote><br> returns 18, while<br> <blockquote><pre><hr noshade size=1 color=#cccccc> <% out.println((10 + 2) * 4); %> returns 48. In addition to these operators, JSP comes with the very useful auto−increment [++] and auto−decrement [−−] operators, which you'll see a lot of in the next article. The auto−increment operator increments the value ofthe variable to which it is applied by 1, while the auto−decrement operator does the opposite. Here's an example: <%! int x = 99; %> <% // x = 99 out.println("Before increment, x = " + x + "<br>"); x++; // x = 100 out.println("After increment, x = " + x); %> JSP also comes with a bunch of comparison operators, whose sole raison d'etre is to evaluate expressions and determine if they are true or false. The following table should make this clearer. Assume x=4 and y=10 TheJSPFiles(part 2): AttackOfTheKillerFortuneCookies Adding It All Up 3 Operator What It Means Expression Result == is equal to x == y False != is not equal to x != y True > is greater than x > y False < is less than x < y True >= is greater than or equal to x >= y False <= is less than or equal to x <= y True TheJSPFiles(part 2): AttackOfTheKillerFortuneCookies Adding It All Up 4 Flavour OfThe Month And just as you can compare numbers, JSP also allows you to compare strings, with a couple of very useful String object methods. First, the equals() method allows you to check whether the value of a particular string variable matches another. The following example should demonstrate this. <% // define variables String myFavourite = "chocolate"; String yourFavourite = "strawberry"; // compare strings if (myFavourite.equals(yourFavourite)) { out.println("A match made in heaven!"); } else { out.println("Naw − try again!"); } %> Try changing the values ofthe variables to match each other, and gasp in awe as the output changes. In case the equals() method doesn't appeal to you, JSP offers you a choice in the form ofthe compareTo() method, which returns a value indicating which ofthe two strings is greater. Take a look: <% // define variables String alpha = "abcdef"; String beta = "zyxwvu"; // compare strings out.println(alpha.compareTo(beta)); %> In this case, if the value ofthe variable "beta" is greater than that ofthe variable "alpha", the compareTo() method will return a negative integer; if it's the other way around, the comparison will return a positive integer. And if the two strings are identical, the comparison will return 0. Incidentally, the comparison is based on both the first character ofthe string, and the number of characters in Flavour OfThe Month 5 the string. One string is considered "greater" than another if the numeric value of its first character is greater, or if its length is greater. In the example above, "z" has a greater numeric code than "a", and so the comparison will return a negative integer. But don't take our word for it − try it yourself and see! TheJSPFiles(part 2): AttackOfTheKillerFortuneCookies Flavour OfThe Month 6 Turning Up The Heat Why do you need to know all this? Well, comparison operators come in very useful when building conditional expressions − and conditional expressions come in very useful when adding control routines to your code. Control routines check for the existence of certain conditions, and execute appropriate program code depending on what they find. The first − and simplest − decision−making routine is the "if" statement, which looks like this: if (condition) { do this! } The "condition" here refers to a conditional expression, which evaluates to either true or false. For example, if (hard drive crashes) { get down on knees and pray for redemption } or, in JSP−lingo. <% if (hdd == 0) { pray(); } %> If the conditional expression evaluates as true, all statements within the curly braces are executed. If the conditional expression evaluates as false, all statements within the curly braces will be ignored, and the lines of code following the "if" block will be executed. Here's a simple program that illustrates the basics ofthe "if" statement. <%! // declare temperature variable int temp = 50; %> Turning Up The Heat 7 <% // check temperature and display output if (temp > 30) { out.println("Man, it's hot out there!"); } %> In this case, a variable named "temp" has been defined, and initialized to the value 50. Next, an "if" statement has been used to check the value ofthe "temp" variable and display a message if it's over 30. Note our usage ofthe greater−than (>) conditional operator in the conditional expression. An important point to note − and one which many novice programmers fall foul of − is the difference between the assignment operator [=] and the equality operator [==]. The former is used to assign a value to a variable, while the latter is used to test for equality in a conditional expression. So a = 47; assigns the value 47 to the variable a, while a == 47 tests whether the value of a is equal to 47. TheJSPFiles(part 2): AttackOfTheKillerFortuneCookies Turning Up The Heat 8 [...]... instead of "if−else if−else" The first... 25) { out.println("Man, it's hot out there!"); } // what happens if temp is between 25 and 10 degrees else if (temp < 25 &temp > 10) { out.println("Great weather, huh?!"); Cookie−Cutter Code 10 TheJSPFiles(part 2): Attack Of The Killer FortuneCookies } // what happens if temp is less than ten degrees else if (temp < 10) { out.println("Man, it's freezing out there!"); } // this is redundant, included... addition to the "if" statement, JSP also offers the "if−else" statement, which allows you to execute different blocks of code depending on whether the expression is evaluated as true or false The structure of an "if−else" statement looks like this: if (condition) { do this! } else { do this! } In this case, if the conditional expression evaluates as false, all statements within the curly braces of the "else"... So, instead of something as ugly as this Lunch In Milan 13 TheJSPFiles (part 2): Attack Of The Killer FortuneCookies you could have something as elegant as this Lunch In Milan 14 Switching Things Around Finally, JSP rounds... another example, this one using the day of the week to decide which fortune cookie to display Alter the "day" variable to see a different cookie each time . assigns the value 47 to the variable a, while a == 47 tests whether the value of a is equal to 47. The JSP Files (part 2): Attack Of The Killer Fortune Cookies. y True The JSP Files (part 2): Attack Of The Killer Fortune Cookies Adding It All Up 4 Flavour Of The Month And just as you can compare numbers, JSP also