COMP 14 Introduction to Programming Mr. Joshua Stough February 7, 2005 Monday/Wednesday 11:00-12:15...
-
date post
20-Dec-2015 -
Category
Documents
-
view
214 -
download
1
Transcript of COMP 14 Introduction to Programming Mr. Joshua Stough February 7, 2005 Monday/Wednesday 11:00-12:15...
COMP 14Introduction to Programming
Mr. Joshua StoughFebruary 7, 2005
Monday/Wednesday 11:00-12:15
Peabody Hall 218
Review
• GUI I/O– JOptionPane.showInputDialog– JOptionPane.showMessageDialog
• File I/O– FileReader– FileWriter, PrintWriter
• String class methods– toUpperCase– toLowerCase
ReviewJOptionPane Methods
• showInputDialogstr = JOptionPane.showInputDialog(strExpression);
• showMessageDialogJOptionPane.showMessageDialog(parentComponent,
strExpression, boxTitleString,
messageType);
ReviewThe StringTokenizer Class• Default delimiters:
– space, tab, carriage return, new line
• Methods– StringTokenizer (String str)– StringTokenizer (String str, String delimits)
– String nextToken()– boolean hasMoreTokens()– int countTokens()
ReviewReading From Text FilesString file = "data.dat";
BufferedReader inFile = new BufferedReader (new FileReader (file));
String line = inFile.readLine();
inFile.close();
ReviewWriting To Text Files
String file = "outfile.dat";
PrintWriter outFile = new PrintWriter(new FileWriter (file));
outFile.print ("Hi");outFile.println(" There!");outFile.close();
Today in COMP 14
• Control Structures• Relational Operators• Comparing Strings• Boolean Expressions
• Textbook Ref: Ch 4 (pgs. 148-164)
Control Structures
Three methods of processing a program:1. In sequence
– statements are executed one after another in order
2. Branching– altering the flow of program execution by
making a selection or choice
3. Looping– altering the flow of program execution by
repetition of statement(s)
Examples of Conditionals
Note: the following are not actual Java statements
1) if (score is greater than or equal to 90)grade is A
2) if (hours worked are less than or equal to 40)wages = rate * hours
otherwisewages = (rate * 40) + 1.5 * (rate * (hours - 40))
3) if (temperature is greater than 70 degrees and it is not raining)
recommended activity is golfing
Relational Operators
• Relational Operator– allows you to make comparisons in a
program– binary operator
• needs two operands
• Condition is represented by a logical (Boolean) expression– expression that has a value of either true or
false
Relational Operators
• Less than <• Greater than >• Equal to ==
– not assignment ‘=‘
• Not equal to !=• Less than or equal to <=• Greater than or equal to >=
Comparing Characters• In Java, characters are ordered according to the
Unicode / ASCII character set (pg. 855)
• ‘a’ comes before ‘b’ in the character set, so we can say ‘a’ < ‘b’
• Order– space character (' ')– digits (‘0’, ‘1’, …)– uppercase– lowercase
Comparing Floating-Point• Be careful when using the equality (==)
to compare floating point numbers• Every bit in the representation must be
equal– computer can only store a certain number
of digits after the decimal
• If the numbers are results of computation, it’s unlikely that two floating point numbers will be exactly equal
Comparing Floating-Point
3.0 / 7.0
2.0 / 7.0
(3.0 / 7.0) + (2.0 / 7.0) + (2.0 / 7.0) == 1
0.4285714285714285
false
0.2857142857142857
If we did this math with exact arithmetic, this expression would be true
0.9999999999999999
Comparing Strings
• Strings are compared on a character-by-character basis– first character not in common determines
how the strings compare– ex: "Airplane" is less than "Airport"
• If two strings have different lengths, and one is a substring of the other, the shorter one is evaluated as less– ex: "Air" is less than "Airplane"
Comparing Strings
Don't use relational operators (==, <, >)
for Strings
str1.compareTo (str2)Returns an integer value:
– < 0 if str1 is less than str2– 0 if str1 is equal to str2– >0 if str1 is greater than str2
str1.equals (str2)Returns a boolean value of true or false
method parameter
Questions
Given String str = "Homer";
str.compareTo("Marge")
str.equals("homer")
str.compareTo("Bart")
negative value
false
positive value
Boolean Expressions• Remember that booleans in Java are
– true– false
• A boolean expression is an expression that can be evaluated to either true or false
• Examples of boolean expressions:– 2+2 is not equal to 5– a is equal to 0– 10 is less than 5
• Named for George Boole (1815-1864), the founder of symbolic logic
Boolean Operators
• NOT! (unary)!(2+2==5)
• AND&& (binary)(2+2==5) && (1+1==2)
• OR || (binary)(2+2==5) || (1+1==2)
true
false
true
Boolean ExpressionsExamples• Simple:
– 2+2 is not equal to 5 2+2 != 5– 10 is less than 5 10 < 5– 'A' is equal to 7 'A' == 7
• Compound:– a is equal to 3 and b is equal to 5 (a==3) && (b==5)– x is not equal to 2 or y is less than 4 (x!=2) || (y<4)
– s is not equal to b and t is greater than or equal to 3 or t is less than 0 (s!=b) && (t>=3) || (t<0)
Short Circuited Operators• The processing of logical AND (&&) and
logical OR (||) is “short-circuited”
• If the left operand is sufficient to determine the result, the right operand is not evaluated
count != 0 && total/count > MAX
Boolean Expressions
• Logical expression that evaluates to true if the value of num is between 0 and 10
0 <= num <= 10
0 <= num && num <= 10
incorrect syntax
correct syntax
Questions
1. What type of primitive variable can the result of a logical expression be stored in?
2. Under what conditions would the expression (ch >= 'A' && ch <= 'Z') evaluate to false?
3. What method do you use to compare two Strings?
4. Why is 'a' greater than 'A'?
boolean
ch < 'A' or ch > 'Z'
compareTo
Because 'a' comes after 'A' in the ASCII(or Unicode) character table.
QuestionsGiven the following declarations, evaluate each Boolean
expression:
int count = 0, sum = 53;double x = 4.3, y = 1.2;boolean wrong = true;1. (wrong && sum > 60)
2. ((x > 5) || !(sum == 55))
3. !((y > 1.0) && (x < 4))
4. ((count != 4) || (sum > 100) && wrong)
false
true
true
true
(false || !(false))
!(true && false)
(true || false && true)
(true && false)
(true || false)